Laravel 5 Laravel中不存在方法更新
更新现有条目的代码非常简单。save()工作正常。但更新不起作用。这是我的密码:Laravel 5 Laravel中不存在方法更新,laravel-5,Laravel 5,更新现有条目的代码非常简单。save()工作正常。但更新不起作用。这是我的密码: Route::post('toggleFavourite',function(){ try{ $data = Request::all(); extract($data); $favourite = \ItScholarBd\Api\Models\Favourite::where(['user_id'=> $user_id,'shop_id'=>
Route::post('toggleFavourite',function(){
try{
$data = Request::all();
extract($data);
$favourite = \ItScholarBd\Api\Models\Favourite::where(['user_id'=> $user_id,'shop_id'=> $shop_id])->get();
if(empty($favourite)){
$favourite = new \ItScholarBd\Api\Models\Favourite;
$favourite->user_id = $user_id;
$favourite->shop_id = $shop_id;
$favourite->status = $status;
$favourite->save();
}else{
$favourite->status = $status;
$favourite->update();
}
return response()->json(['status' =>1, 'data' => $favourite], 200);
}
catch (Exception $ex) {
return response()->json(['status'=>0, 'status_text' => $ex->getMessage()], 500);
}
});
我得到以下回应:
{"status":0,"status_text":"Method update does not exist."}
文件中提到了以下更新
$flight = App\Models\Flight::find(1);
$flight->name = 'New Flight Name';
$flight->save();
我相信,要使代码正常工作,唯一需要更改的就是替换
$favorite->update()使用$favorite->save()进行编码>代码>,但我试图使您的代码简单一点:
use Illuminate\Http\Request;
use ItScholarBd\Api\Models\Favourite;
Route::post('toggleFavourite', function (Request $request) {
try {
$user_id = $request->get('user_id');
$shop_id = $request->get('shop_id');
$status = $request->get('status');
// get the existing favourite or a new instance
$favourite = Favourite::where(['user_id' => $user_id, 'shop_id' => $shop_id])->firstOrNew();
// check if it exists in the database
if (!$favourite->exists()) {
$favourite->user_id = $user_id;
$favourite->shop_id = $shop_id;
}
$favourite->status = $status;
$favourite->save();
return response()->json(['status' => 1, 'data' => $favourite], 200);
} catch (Exception $ex) {
return response()->json(['status' => 0, 'status_text' => $ex->getMessage()], 500);
}
});
附言:
您应该添加到路由中,这样您就不会只接受和存储请求中发送的任何值。根据我的观察,我得出一个结论:
更新仅适用于find($id)方法的对象。以下代码可以完美地工作:
try {
$data = Request::all();
extract($data);
$favourite = Favourite::where(['user_id' => $user_id, 'shop_id' => $shop_id]);
if (!$favourite->count()) {
$favourite = new Favourite;
$favourite->user_id = $user_id;
$favourite->shop_id = $shop_id;
$favourite->status = $status;
$favourite->save();
}else{
$favourite = $favourite->get()->toArray();
$favourite = Favourite::find($favourite[0]['id']);
$favourite->status = $status;
$favourite->update();
}
return response()->json(['status' => 1, 'data' => $favourite], 200);
} catch (Exception $ex) {
return response()->json(['status' => 0, 'status_text' => $ex->getMessage()], 500);
}
我们对“简单代码”有不同的定义…