Php Laravel 5.2数据更新不工作:显示错误
我使用的是Laravel5.2PHP框架。当我试图更新任何数据时,都是由于一个错误。我不知道为什么会发生这种情况?我已经在谷歌搜索过了,但是我没有得到任何可以解决我问题的结果 Myroutes.php:Php Laravel 5.2数据更新不工作:显示错误,php,html,laravel,laravel-5,Php,Html,Laravel,Laravel 5,我使用的是Laravel5.2PHP框架。当我试图更新任何数据时,都是由于一个错误。我不知道为什么会发生这种情况?我已经在谷歌搜索过了,但是我没有得到任何可以解决我问题的结果 Myroutes.php: Route::group(['prefix' => 'jobs'], function () { Route::get('all', ['as' => 'allJobs' , 'uses' => 'JobController@index']); Route::g
Route::group(['prefix' => 'jobs'], function () {
Route::get('all', ['as' => 'allJobs' , 'uses' => 'JobController@index']);
Route::get('create', ['as' => 'addNewJobs' , 'uses' => 'JobController@create']);
Route::post('save', ['as' => 'saveJob' , 'uses' => 'JobController@store']);
Route::get('edit/{id}', ['as' => 'editJobs' , 'uses' => 'JobController@edit']);
Route::put('update', ['as' => 'updateJob' , 'uses' => 'JobController@update']);
Route::get('delete/{id}', ['as' => 'deleteJob' , 'uses' => 'JobController@destroy']);
});
public function update(Request $request, $id=0)
{
$id = $request->input("id");
$job = Jobs::find($id);
$job->jobTitle = $request->input('jobTitle');
$job->jobCat = $request->input('jobCat');
$job->jobSummary = $request->input('jobSummary');
$job->save();
return redirect(route('allJobs'));
}
MyJobController.php:
Route::group(['prefix' => 'jobs'], function () {
Route::get('all', ['as' => 'allJobs' , 'uses' => 'JobController@index']);
Route::get('create', ['as' => 'addNewJobs' , 'uses' => 'JobController@create']);
Route::post('save', ['as' => 'saveJob' , 'uses' => 'JobController@store']);
Route::get('edit/{id}', ['as' => 'editJobs' , 'uses' => 'JobController@edit']);
Route::put('update', ['as' => 'updateJob' , 'uses' => 'JobController@update']);
Route::get('delete/{id}', ['as' => 'deleteJob' , 'uses' => 'JobController@destroy']);
});
public function update(Request $request, $id=0)
{
$id = $request->input("id");
$job = Jobs::find($id);
$job->jobTitle = $request->input('jobTitle');
$job->jobCat = $request->input('jobCat');
$job->jobSummary = $request->input('jobSummary');
$job->save();
return redirect(route('allJobs'));
}
错误:
Route::group(['prefix' => 'jobs'], function () {
Route::get('all', ['as' => 'allJobs' , 'uses' => 'JobController@index']);
Route::get('create', ['as' => 'addNewJobs' , 'uses' => 'JobController@create']);
Route::post('save', ['as' => 'saveJob' , 'uses' => 'JobController@store']);
Route::get('edit/{id}', ['as' => 'editJobs' , 'uses' => 'JobController@edit']);
Route::put('update', ['as' => 'updateJob' , 'uses' => 'JobController@update']);
Route::get('delete/{id}', ['as' => 'deleteJob' , 'uses' => 'JobController@destroy']);
});
public function update(Request $request, $id=0)
{
$id = $request->input("id");
$job = Jobs::find($id);
$job->jobTitle = $request->input('jobTitle');
$job->jobCat = $request->input('jobCat');
$job->jobSummary = $request->input('jobSummary');
$job->save();
return redirect(route('allJobs'));
}
我真的不知道问题出在哪里?有谁能告诉我解决办法吗
注意:如果您需要,我可以提供更多信息。
您可以通过GET访问“作业/更新”路线。将http方法更改为PUT,可能是在表单中或在ajax请求中您已将更新路由定义为
Route::put('update', ['as' => 'updateJob' , 'uses' => 'JobController@update']);
将此行替换为
Route::put('update/{id}', ['as' => 'updateJob' , 'uses' => 'JobController@update']);
然后你必须在表格中加上
method_field('PUT');
试试这个:
routes.php:
Route::group(['prefix' => 'jobs'], function () {
Route::get('all', ['as' => 'allJobs' , 'uses' => 'JobController@index']);
Route::get('create', ['as' => 'addNewJobs' , 'uses' => 'JobController@create']);
Route::post('save', ['as' => 'saveJob' , 'uses' => 'JobController@store']);
Route::get('edit/{id}', ['as' => 'editJobs' , 'uses' => 'JobController@edit']);
Route::post('update', ['as' => 'updateJob' , 'uses' => 'JobController@update']);
Route::get('delete/{id}', ['as' => 'deleteJob' , 'uses' => 'JobController@destroy']);
});
JobController.php:(确保在JobController.php中的名称空间之后添加使用输入;
)
添加update/{id}后,我无法编辑其显示的任何内容:prntscr.com/addc21和我的edit.blade.php声明的表单是`{!!form::model($job,array('route'=>'updateJob','class'=>'form horizontal','id'=>'export form','files'=>true))
从您的评论中可以看出,粘贴到此处时出现异常-因为在edit.blade.php文件中有数组('route'=>'updateJob'…),并且您已将路由更改为update/{id},现在需要传递该id
所以简单地替换
**
路由'=>'更新作业'
与
'route'=>['updateJob',$jobId]
对于这个问题,请提供JobController中第90行的内容。我只是假设您导入了错误的请求类。我发现了我的问题。我的问题是jobs.blade.php
文件。第一次我没有传递任何方法和表单中的$job
变量。现在我添加了两个隐藏的输入字段,用于获取方法和值id
s值。如果我用下面的代码替换blade
表单,那么它工作正常
{!! Form::model($job,array('route' => 'updateJob', 'class' => 'form-horizontal', 'id'=> 'add-form', 'files' => true)) !!}
<input type='hidden' name='_method' value='put'>
<input type='hidden' name='id' value='{!! $job->id !!}'>
//here is other all fields
{!! Form::close() !!}
{!!Form::model($job,array('route'=>'updateJob','class'=>'Form horizontal','id'=>'add Form','files'=>true))
//这是其他所有字段
{!!Form::close()!!}
谢谢大家。希望这对任何人都有帮助。我已经尝试了{!!method_field('PUT')!!}
然后它显示错误从空值创建默认对象
。你能显示视图部分吗。路由::put('update/{id}',['as'=>'updateJob','uses'=>'JobController@update']); 我想您在路由中丢失了id这是视图部分,当我单击“更新”时,它显示错误。我声明了route::get('edit/{id}',['as'=>'editJobs','uses'=>'JobController@edit']);代码>所以它被编辑是正确的,但是它没有将更新的信息保存到数据库中。添加update/{id}
后,我不能编辑它显示的任何内容:我的edit.blade.php
声明的表单是`{form form::model($job,array('route'=>'updateJob',class'=>'form horizontal','id'=>'export form','files'=>true))`我在名称空间
之后添加了使用输入
,但未找到其显示输入类。这只是一个错误。感谢您的帮助。要修复该错误,您需要在app.php中的别名
中添加此行'Input'=>illumb\Support\Facades\Input::class
。然后确保运行composer dump autoload。