[英]Model not updating laravel
I can't seem to update my user and school table anymore but was able to update hobby table now. 我似乎无法再更新用户和学校表,但现在可以更新兴趣表了。
Keep getting error: implode(): Invalid arguments passed when updating data --> linking back to the question before 不断出错:implode():更新数据时传递了无效的参数 ->之前链接回问题
Controller: 控制器:
//update for user
public function edit($id){
$object = user::find($id);
return view('edit', compact('object'));
}
public function update(Request $request, $id){
$object = user::find($id);
$object->Name = $request->input('Name');
$object->update();
return redirect('/home');
}
//update for Schools table
public function edit1($id){
$object2 = school::find($id);
return view('edit1', compact('object2'));
}
public function update1(Request $request, $id){
$object2 = school::find($id);
$test = array();
$test['School'] = implode(' , ', $request->School);
$test['SDate'] = implode(' , ', $request->SDate);
$test['EDate'] = implode(' , ', $request->EDate);
$object2->update($test);
return redirect('/home');
}
// The error starts here after putting this whole thing in.
// (I tried putting it into another separate controller but the error
// still continues)
public function edit2($id) {
$object3 = hobby::find($id);
return view('edit2', compact('object3'));
}
public function update2(Request $request, $id){
$object3 = hobby::find($id);
$test2 = array();
$reading_book = (array)$request->reading_book;
$test2['reading_book'] = implode(' , ',$reading_book );
$computer_game = (array)$request->computer_game;
$test2['computer_game'] = implode(' , ',$computer_game );
$object3->update($test2);
return redirect('/home');
}
Hobby model: 爱好模型:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Eloquent;
class hobby extends Eloquent
{
protected $fillable = array('reading_book','computer_game','user_id');
public function users() {
return $this->belongsTo('App\user, 'user_id', 'id');
}
}
Route: (currently using these for updating) 路线:(当前使用这些路线进行更新)
Route::get('/user/show/{id}/edit', 'HomeController@edit');
Route::put('/user/show/{id}','HomeController@update');
Route::get('/user/show/{id}/edit1', 'HomeController@edit1');
Route::put('/user/show/{id}','HomeController@update1');
Route::get('/user/show/{id}/edit2', 'HomeController@edit2');
Route::put('/user/show/{id}','HomeController@update2');
The problem is in your routes : 问题出在您的路线上:
Route::put('/user/show/{id}','HomeController@update');
Route::put('/user/show/{id}','HomeController@update1');
Route::put('/user/show/{id}','HomeController@update2');
It's the same route for three methods. 这是三种方法的相同路线。
Just for testing you can do that : 只是为了测试,您可以这样做:
Route::put('/user/show/{id}','HomeController@update');
Route::put('/user/showupdate1/{id}','HomeController@update1');
Route::put('/user/showupdate2/{id}','HomeController@update2');
And change in the view this will work perfectly :) 并改变视图,这将完美地工作:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.