Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel在方法创建和存储中返回未知错误_Php_Laravel - Fatal编程技术网

Php Laravel在方法创建和存储中返回未知错误

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();

我有一个问题,我的项目,我尝试写的方法保存记录到数据库。我创建了controller ProductsController,其中添加了以下方法:

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行

  • 在RouteCollection.php第218行中
  • 在RouteCollection->methodNotAllowed(数组('GET','HEAD','PUT', RouteCollection.php第205行中的“补丁”、“删除”)
  • 在RouteCollection->getRouteForMethods(对象(请求),数组('GET', RouteCollection.php第158行中的“HEAD”、“PUT”、“PATCH”、“DELETE”)
  • 在Router.php第821行的RouteCollection->match(对象(请求))处
  • 在Router.php第691行的Router->findulote(对象(请求))处
  • 在Router.php第675行的Router->dispatchToRoute(对象(请求))处
  • 在Kernel.php第246行的Router->dispatch(object(Request))处
  • 在内核->照亮\Foundation\Http{closure}(对象(请求))处 在Pipeline.php中调用_user_func(对象(闭包)、对象(请求)) 第52行
  • 在中的管道->照明\路由{closure}(对象(请求))处 CheckFormIntenanceMode.php第44行
  • 在CheckFormIntenanceMode->handle(对象(请求))中, 对象(闭包)位于 调用用户函数数组(数组(对象)(CheckFormIntenanceMode), Pipeline.php中的数组(对象(请求)、对象(闭包)) 第136行
  • 在管道->照明\管道{closure}(对象(请求))处 在Pipeline.php中调用_user_func(对象(闭包)、对象(请求)) 第32行
  • 在管道->照明\路由{closure}(对象(请求))处 在Pipeline.php中调用_user_func(对象(闭包)、对象(请求)) 第102行
  • 在Kernel.php第132行的Pipeline->then(object(Closure))中
  • 在Kernel.php中的Kernel->sendRequestThroughRouter(对象(请求))处 第99行
  • 在index.php第53行的Kernel->handle(对象(请求))处

  • 看起来资源路线有些混乱

    从图表上看

    /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']) !!}