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
路由模型绑定在Laravel上不起作用_Laravel - Fatal编程技术网

路由模型绑定在Laravel上不起作用

路由模型绑定在Laravel上不起作用,laravel,Laravel,两天以来,我一直在努力解决这个问题,但运气不好。我的ArticleController上有一个更新方法,负责更新数据库中的文章: public function update(Article $articles, ArticleRequest $request){ $article = Article::findOrFail($articles); $article->update($request->all()); return redirect('

两天以来,我一直在努力解决这个问题,但运气不好。我的ArticleController上有一个更新方法,负责更新数据库中的文章:

public function update(Article $articles,  ArticleRequest $request){

    $article = Article::findOrFail($articles);

    $article->update($request->all());

    return redirect('articles');
    }
以下是我的blade文件以显示这些结果:

@extends('app')




@section ('content')
<div class="container">

<h1>Edit:  {{$article->title}}</h1>



{!!Form::model($article,['method'=>'PATCH', 'action'=>['ArticleController@update', $article->id] ])!!}
 @include('pages.partials', ['submitButtonText' => 'Edit Article'])


{!!Form::close()!!}
@include('errors.error')

</div>


@endsection
@extends('app')
@节(“内容”)
编辑:{{$article->title}
{!!Form::model($article,['method'=>'PATCH','action'=>['ArticleController@update“,$article->id]])
@包括('pages.partials',['submitButtonText'=>'编辑文章']))
{!!Form::close()!!}
@包括('errors.error')
@端部

我得到一个错误,文章var不存在

设置路由模型绑定时,幕后的Laravel会为您检索适当的模型实例,并将其传递到控制器方法中。在您的示例中,
Article$articles
参数表示文章模型的一个实例,而不仅仅是id。因此,以下行既不必要(因为您已经有了相应的模型实例),也不正确(因为
findOrFail
希望向其传递一个整数,而不是模型实例):

我将您的控制器方法更改为:

public function update(Article $articles,  ArticleRequest $request)
{
    $articles->update($request->all());

    return redirect('articles');
}

如果您在这方面仍然有问题,请“死并转储”您的
$articles
变量,以确保正确设置了路由模型绑定。

是否可以删除$article=article::findOrFail($articles);
public function update(Article $articles,  ArticleRequest $request)
{
    $articles->update($request->all());

    return redirect('articles');
}