【问题标题】:PHP set empty field in database to value [duplicate]PHP将数据库中的空字段设置为值[重复]
【发布时间】:2020-05-17 01:28:02
【问题描述】:

如果字段为空,我的目标是设置值。

但得到“试图获取非对象的属性”错误。

last_day 为空字段,如何赋值 1?

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; 
           } 

【问题讨论】:

    标签: php database laravel-5


    【解决方案1】:

    第一个问题:$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_day作为你的代码。

    【讨论】:

    • 还是行 $last_day = Auth::user()->user_settings->last_day;收到错误“尝试获取非对象的属性”
    • 如果user_settings 不存在,你会得到一个错误是的。您没有检查它是否存在。可以很容易地在这样的一个班轮中解决:$last_day = (Auth::user()->user_settings()->exists() ? Auth::user()->user_settings->last_day : 'default value if it doesnt exist');
    【解决方案2】:

    您没有设置 $user 对象。

    首先你必须制作对象:

    $user = Auth::user()
    

    【讨论】:

      猜你喜欢
      • 2019-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-07
      • 1970-01-01
      • 2015-12-04
      • 2013-04-22
      • 1970-01-01
      相关资源
      最近更新 更多