Php Laravel在方法创建和存储中返回未知错误
我有一个问题,我的项目,我尝试写的方法保存记录到数据库。我创建了controller ProductsController,其中添加了以下方法:Php Laravel在方法创建和存储中返回未知错误,php,laravel,Php,Laravel,我有一个问题,我的项目,我尝试写的方法保存记录到数据库。我创建了controller ProductsController,其中添加了以下方法: public function create(){ $articles = Article::lists('article_name', 'id'); $categories = Category::lists('category_name', 'id'); $date = Carbon::now();
public function create(){
$articles = Article::lists('article_name', 'id');
$categories = Category::lists('category_name', 'id');
$date = Carbon::now();
$minDate = Carbon::minValue($date);
return view('pages.createproduct', compact('articles', 'categories', 'date', 'minDate'));
}
public function store(CreateProductRequest $request){
dd($request->article_name);
$product = new Product($request->all());
Auth::user()->products()->save($product);
return redirect('warehouse');
}
接下来,我创建了文件createproduct.blade.php:
{!! Form::open(['url' => 'warehouse/create', 'class' => 'form-horizontal']) !!}
{!! Form::select('article_name[]', $articles, NULL, ['class' => 'form-control']) !!}<br />
{!! Form::select('category_name[]', $categories, NULL, ['class' => 'form-control']) !!}<br />
{!! Form::text('sn', null, ['class' => 'form-control', 'placeholder' => 'Podaj serial...']) !!}<br />
{!! Form::number('quantity', null, ['class' => 'form-control', 'min' => '1', 'placeholder' => 'Podaj ilość...']) !!}<br />
{!! Form::date('warranty', $date, ['class' => 'form-control', $minDate]) !!}<br />
{!! Form::submit('Dodaj', ['class' => 'btn btn-default']); !!}
{!! Form::close() !!}
当我想将记录保存到数据库时,Laravel返回一个错误:
MethodNotAllowedHttpException在RouteCollection.php第218行
看起来资源路线有些混乱 从图表上看
/warehouse/create
将是向您显示表单的路线,它是一个获取
请求。您希望存储仓库,因此表单的URL应该指向/warehouse
,并且应该是POST
request
记住这一点,你应该改变
{!! Form::open(['url' => 'warehouse/create', 'class' => 'form-horizontal']) !!}
到
请注意,我还将
url
更改为route
,因为允许Laravel为您生成url比使用相对url更安全,因为如果您的路由因某种原因发生更改,或者如果您在另一个页面上有相同的表单,则相对url很容易中断。php artisan route:list
对您来说是非常宝贵的把这些事情弄清楚。回答得好。
{!! Form::open(['url' => 'warehouse/create', 'class' => 'form-horizontal']) !!}
{!! Form::open(['route' => 'warehouse.store', 'method' => 'post', 'class' => 'form-horizontal']) !!}