У меня возникли некоторые проблемы с функцией обновления PHP Laravel. Он не обновляется, а только вставляется.Laravel Eloquent не обновляет только вставку
public function post_rate(){
$o = Input::all();
//has user already rated?!
$query = DB::table("ratings")->select("id")->where("user", "=", Auth::user()->id)->where("story_id", "=", $o['story_id'])->get();
foreach ($query as $d):
$theID = $d->id;
endforeach;
if (empty($query)): //User hasn't rated!
$z = new Rating();
else:
$z = new Rating($theID); //user has rated, tell which to update
-----------------------------^ that cause the problem!
endif;
$z->story_id = $o['story_id'];
$z->user = Auth::user()->id;
$z->rating = $o['rating'];
$z->save();
echo "OK";
}
Это работает, когда не было оснований строк, но когда я буду использовать новый рейтинг (@something), он терпит неудачу.
Идентификатор столбца в таблице «рейтинги» является основным и автоматическим.
В моей модели я также создал
public static $key = 'id';
Выход «$ theID» также содержит правильно идентификатор для тузда строки.
Кусок советы -Если вы хотите получить массив, содержащий значения только из одного столбца, вы можете сделать это следующим образом: $ IdArray = DB :: таблицу («рейтинги») -> где («user», «=», Auth :: user() -> id) -> где ("story_id", "=", $ o ['story_id']) -> lists ('id'); – misaizdaleka