【问题标题】:Undefined variable: stockcategory in Laravel未定义变量:Laravel 中的 stockcategory
【发布时间】:2017-12-11 13:56:25
【问题描述】:

我试图从数据库中创建一个删除类别选项,以便管理员能够从选择选项中选择产品类别。但是在我从 DashboardController 中的数据库中选择并尝试将其包含在表单中的选择选项中后,表单页面中出现了错误。

这是显示的错误:

73cd6543c61fa0a342e4d528a9bc24bd5c4c4cbe.php 第 29 行中的错误异常: 未定义变量:stockcategory(查看:C:\wamp\www\pump\core\resources\views\dashboard\stock-create.blade.php)

这里是 stock-create.blade.php

@extends('layouts.dashboard')
@section('title', 'Stock Create')
@section('content')

    <div class="row">
        <div class="col-md-12">
            <div class="portlet light bordered">

                <div class="portlet-body form">
                    {!! Form::open(['method'=>'post','class'=>'form-horizontal']) !!}
                    <div class="form-body">


                        <div class="form-group">
                            <label class="col-sm-3 control-label">Product Name : </label>

                            <div class="col-sm-6">
                                <input name="name" value="" class="form-control input-lg" type="text" required placeholder="Product Name">
                            </div>
                        </div>

                        <div class="form-group">
                            <label class="col-sm-3 control-label">Product Category : </label>

                            <div class="col-sm-6">
                                <select name="product_id" id="" class="form-control input-lg" required>
                                    <option value="">Select One</option>

                                    @foreach($stockcategory as $c)
                                        <option value="{{ $c->id }}">{{ $c->category }}</option>
                                    @endforeach
                                </select>

                            </div>
                        </div>


                        <div class="form-group">
                            <label class="col-sm-3 control-label">Product Quantity : </label>
                            <div class="col-sm-6">
                                <input type="number" class="form-control" name="product-quantity" placeholder="Product Quantity">                            </div>
                        </div>

                        <div class="form-group">
                            <label class="col-sm-3 control-label">Buying Price : </label>
                            <div class="col-sm-6">
                                <input type="number" class="form-control" name="buying-price" placeholder="Buying Price"></div>
                        </div>

                        <div class="form-group">
                            <label class="col-sm-3 control-label">Selling Price : </label>
                            <div class="col-sm-6">
                                <input type="number" class="form-control" name="saleing-price" placeholder="Selling Price">
                                </div>
                        </div>

                        <div class="form-group">

                            <div class="row">
                                <div class="col-md-offset-3 col-md-6">
                                    <button type="submit" class="btn blue btn-block margin-top-10"><i class="fa fa-paper-plane"></i> Add</button>
                                </div>
                            </div>
                        </div>
                    </div>
                    {!! Form::close() !!}
                </div>

            </div>
        </div>
    </div><!---ROW-->


@endsection

DashboardController.php

//Stocks Category
    public function createStockCategory()
    {
        $data['site_title'] = $this->site_title;
        $data['page_title'] = "Create Stock Category";

        return view('dashboard.stockcategory-create',$data);
    }
    public function storeStockCategory(Request $request)
    {
        $this->validate($request,[
           'category' => 'required|unique:stock_category,category',

        ]);
        try {
            $stockcategory = Input::except('_method','_token');
            StockCategory::create($stockcategory);
            session()->flash('message', 'Stock Category Created Successfully. ');
            Session::flash('type', 'success');
            return redirect()->back();
        } catch (\PDOException $e) {
            session()->flash('message', 'Some Problem Occurs, Please Try Again!');
            Session::flash('type', 'danger');
            return redirect()->back();
        }


    }
    public function showStockCategory()
    {
        $data['site_title'] = $this->site_title;
        $data['page_title'] = "All Stock Category";
        $data['stockcategory'] = StockCategory::orderBy('id','ASC')->paginate(100);
        return view('dashboard.stockcategory-show',$data);
    }
    public function editStockCategory($id)
    {
        $data['stockcategory'] = StockCategory::findOrFail($id);
        $data['site_title'] = $this->site_title;
        $data['page_title'] = 'Edit Stock Category';
        //$data['stock'] = Stock::all();
        $date = StockCategory::find($id);
        return view('dashboard.stockcategory-edit',$data);

    }
    public function updateStockCategory(Request $request,$id)
    {
        $stockscategory = StockCategory::findOrFail($id);
        $this->validate($request,[
           'category' => 'required|unique:stock_category,category,'.$stockscategory->id,

        ]);
        try {
            $stockcategory = Input::except('_method','_token');
            $stockscategory->fill($stockcategory)->save();
            session()->flash('message', 'Stock category Updated Successfully.');
            Session::flash('type', 'success');
            return redirect()->back();
        } catch (\PDOException $e) {
            session()->flash('message', 'Some Problem Occurs, Please Try Again!');
            Session::flash('type', 'danger');
            return redirect()->back();
        }
    }
    public function deleteStockCategory(Request $request)
    {
        try {
            if ($request->input('id') === '') {
                session()->flash('message', 'Oops, bad request!');
                Session::flash('type', 'danger');
                return redirect()->back();
            }else{
                $stockcategory = StockCategory::findOrFail($request->input('id'));
                $stockcategory->delete();
                session()->flash('message', 'Stock Category Deleted Successfully.');
                Session::flash('type', 'success');
                return redirect()->back();
            }

        } catch (\PDOException $e) {
            session()->flash('message', 'Some Problem Occurs, Please Try Again!');
            Session::flash('type', 'danger');
            return redirect()->back();
        }
    }

Routes.php

/* Stock Category Route List */
Route::get('stockcategory-create',['as'=>'stockcategory-create','uses'=>'DashboardController@createStockCategory']);
Route::post('stockcategory-create',['as'=>'stockcategory-store','uses'=>'DashboardController@storeStockCategory']);
Route::get('stockcategory-show',['as'=>'stockcategory-show','uses'=>'DashboardController@showStockCategory']);
Route::get('stockcategory-edit/{id}',['as'=>'stockcategory-edit','uses'=>'DashboardController@editStockCategory']);
Route::put('stockcategory-edit/{id}',['as'=>'stockcategory-update','uses'=>'DashboardController@updateStockCategory']);
Route::delete('stockcategory-delete',['as'=>'stockcategory-delete','uses'=>'DashboardController@deleteStockCategory']);

我到底做错了什么?

【问题讨论】:

  • 您在视图中使用$stockcategory,但您需要先从控制器以createStockCategory() 的方法发送它!喜欢:return view('dashboard.stockcategory-create', ['stockcategory' =&gt; $data]);
  • @HirenGohel,你能指出我正确的方向吗?请。
  • 尝试:return view('dashboard.stockcategory-create', ['stockcategory' =&gt; $data]); 参考:laravel.com/docs/5.5/views#passing-data-to-views

标签: laravel


【解决方案1】:

您在视图中使用$stockcategory,但您需要先从控制器以createStockCategory() 的方法发送它!试试这样:

public function createStockCategory()
{
    $data['site_title'] = $this->site_title;
    $data['page_title'] = "Create Stock Category";

    return view('dashboard.stockcategory-create', ['stockcategory' => $data]);
}

参考这个Docs

希望对你有帮助!!

【讨论】:

    【解决方案2】:

    在您的此函数中,将$data 传递为stockcategory

    public function createStockCategory()
    {
        $data['site_title'] = $this->site_title;
        $data['page_title'] = "Create Stock Category";
    
        return view('dashboard.stockcategory-create',['stockcategory' => $data]);
    }
    

    【讨论】:

    • 感谢大家的宝贵时间,非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2019-04-29
    • 1970-01-01
    • 2015-05-15
    • 2018-12-12
    • 2019-03-01
    • 2023-03-05
    • 2018-01-26
    • 2020-09-24
    相关资源
    最近更新 更多