PHP将数据库中的空字段设置为值
如果字段为空,我的目标是设置值 但出现“尝试获取非对象的属性”错误 最后一天是空字段,如何赋值1PHP将数据库中的空字段设置为值,php,database,laravel-5,Php,Database,Laravel 5,如果字段为空,我的目标是设置值 但出现“尝试获取非对象的属性”错误 最后一天是空字段,如何赋值1 public function getPointsForExercises(){ $ls = Auth::user()->lessons()->get(); $last_day = Auth::user()->user_settings->last_day; if (empty($user->user_settin
public function getPointsForExercises(){
$ls = Auth::user()->lessons()->get();
$last_day = Auth::user()->user_settings->last_day;
if (empty($user->user_settings->last_lesson)) {
$user->user_settings->last_lesson = 1;
}
您没有设置$user对象 首先,您必须制作对象:
$user = Auth::user()
第一个问题:
$user
变量未定义
可以使用exists
函数来实现您试图实现的目标,以确保关系存在,然后使用update
函数更新值,如下所示:
public function getPointsForExercises() {
$ls = Auth::user()->lessons()->get();
$last_day = Auth::user()->user_settings->last_day;
if (Auth::user()->user_settings()->exists() && empty(Auth::user()->user_settings->last_lesson)) {
Auth::user()->user_settings()->update([
'last_lesson' => 1
]);
}
上面的代码没有结束函数,也没有使用变量
$ls
和$last\u day
作为代码。仍然行$last\u day=Auth::user()->user\u settings->last\u day;获取错误“尝试获取非对象的属性”如果用户\u设置不存在,您将获得错误“是”。您没有检查它是否存在。可以用这样的一行代码轻松解决:$last_day=(Auth::user()->user_settings()->exists()?Auth::user()->user_settings->last_day:“如果不存在,则默认值”)代码>