Search code examples
laravelundefineddropdown

Undefined variable categories_dropdown in laravel


I’m working on category and sub_catengory with laravel select menu related to shopping site using Mass Assignment, I’m having trouble to retrieve from the database from the select menu. I'm getting error said

Undefined variable: categories_dropdown (View:

add_product.blade.php file.

<div class="row">
       <div class="col-md-6">
           <div class="form-group row">
                 <label for="Category" class="col-sm-3 text-right control-label col-form-label font- 
                 weight-bold">Category: <span class="red_star">&#8727;</span></label>
                     <div class="col-sm-9">
                          <select name="category" id="category" class="custom-select">
                             <?php echo $categories_dropdown; ?>
                          </select>
                     </div>
            </div>
 </div>

ProductController.php

public function store(){

        $data = request()->validate([
            'sku' => 'required',
            'product_name' => 'required',
            'description' => 'required',
            'brand' => 'required',
            'category_id' => 'required',
            'sub_categories' => 'required',
'size' => '',
            'status' => '',
            'product_code' => '',
            'care' => '',

        ]);

        Product::create($data);

$categories = Category::where(['parent_id'=>0])->get();
$categories_dropdown = "<option value='' selected disabled>Select</option>";
foreach($categories as $cat){
    $categories_dropdown .= "<option value='".$cat->id."'>".$cat->name."</option>";
    $sub_categories = Category::where(['parent_id'=>$cat->id])->get();
    foreach ($sub_categories as $sub_cat) {
        $categories_dropdown .= "<option value = '".$sub_cat->id."'>&nbsp;--&nbsp;".$sub_cat->name."</option>";
    }
}

//Categories drop down end

return view('admin.products.add_product')->with(compact('categories_dropdown'));
}

product.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Product extends Model
{
    protected $guarded = [];
}

what did I missed it! many thanks.


Solution

  • You have to change this

    return view('admin.products.add_product',compact('categories_dropdown'));