繁体   English   中英

无法使用路由模型绑定更新Laravel 5.1中的存储数据

[英]Can't update stored data in Laravel 5.1 using route model binding

我正在观看laracast上的laravel基础知识,并在尝试更新文章时遇到该错误(这是一个CRUD博客,我可以创建和阅读不能更新和删除的文章将在将来出现)

这是错误

Router.php第960行的NotFoundHttpException:

in Router.php line 960
at Router->Illuminate\Routing\{closure}('{articles}', object(Route))
at call_user_func(object(Closure), '{articles}', object(Route)) in Router.php line 784
at Router->performBinding('articles', '{articles}', object(Route)) in Router.php line 767
at Router->substituteBindings(object(Route)) in Router.php line 754
at Router->findRoute(object(Request)) in Router.php line 659
at Router->dispatchToRoute(object(Request)) in Router.php line 635
at Router->dispatch(object(Request)) in Kernel.php line 236
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 139
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in VerifyCsrfToken.php line 50
at VerifyCsrfToken->handle(object(Request), object(Closure))
at call_user_func_array(array(object(VerifyCsrfToken), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in ShareErrorsFromSession.php line 49
at ShareErrorsFromSession->handle(object(Request), object(Closure))
at call_user_func_array(array(object(ShareErrorsFromSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in StartSession.php line 62
at StartSession->handle(object(Request), object(Closure))
at call_user_func_array(array(object(StartSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure))
at call_user_func_array(array(object(AddQueuedCookiesToResponse), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in EncryptCookies.php line 59
at EncryptCookies->handle(object(Request), object(Closure))
at call_user_func_array(array(object(EncryptCookies), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in CheckForMaintenanceMode.php line 44
at CheckForMaintenanceMode->handle(object(Request), object(Closure))
at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
at Pipeline->then(object(Closure)) in Kernel.php line 122
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 87
at Kernel->handle(object(Request)) in index.php line 54
at require_once('C:\xampp\htdocs\fundamentals_laravel\public\index.php') in server.php line 21

这是我使用的RouteServiceProvider函数

public function boot(Router $router)
{
    parent::boot($router);

    $router->model('articles', 'App\Article');
}

我的routes.php文件

Route::resource('articles', 'ArticlesController');

我的控制器更新和编辑功能

public function edit(Article $article)
{
    $tags = Tag::lists('name', 'id');

    return view('articles.edit', compact('article', 'tags'));
}

/**
 * Update the specified resource in storage.
 *
 * @param  \Illuminate\Http\Request  $request
 * @param  int  $id
 * @return \Illuminate\Http\Response
 */
public function update(Article $article, ArticleRequest $request)
{
  $article->update($request->all());

  $article->tags()->sync($request->input('tag_list'));

  return redirect('articles');
}

edit.blade.php

@extends('pages.app')

@section('content')

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

<hr>


{!! Form::model($article, ['method'  =>'PATCH',  'action'=>'ArticlesController@update', $article->id]) !!}
@include('articles.form', ['submitButtonText' => 'Update Article'])
{!! Form::close() !!}
@include('errors.list')

@stop

最后包含的form.blade.php

<div class="form-group">
{!! Form::label('title', 'Title:') !!}
{!! Form::text('title', null, ['class' => 'form-control']) !!}
</div>

<div class="form-group">
{!! Form::label('body', 'Body:') !!}
{!! Form::textarea('body', null, ['class' => 'form-control']) !!}
</div>

<div class="form-group">
{!! Form::label('published_at', 'Publish On:') !!}
{!! Form::input('date', 'published_at', date('Y-m-d'), ['class' => 'form-control']) !!}
</div>

<div class="form-group">
{!! Form::label('tag_list', 'Tags:') !!}
{!! Form::select('tag_list[]', $tags, null, ['class' => 'form-control', 'multiple']) !!}
</div>

<div class="form-group">
{!! Form::submit($submitButtonText, ['class' => 'btn btn-primary form-control']) !!}
</div>

更改route.php文件后尝试此代码

php artisan route:cache

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM