【问题标题】:Trying to get property 'cname' of non-object Laravel php 5.8试图获取非对象 Laravel php 5.8 的属性“cname”
【发布时间】:2019-06-07 10:57:38
【问题描述】:

我正在学习 laravel 5.8,我正在建立一个工作门户网站。

我的问题是为什么会发生此错误。我已经检查了我的表,显然,我在公司表中有一个列 cname(company name)。而且我还有一个对象。

以下是我的代码。如果有人帮助我,我真的很高兴。

此代码用于识别用户是求职者还是雇主。 我想注册为求职者。

this is my error page.

app.blade.php

<li class="nav-item dropdown">
                                <a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre>
                                    @if(Auth::user()->user_type='company')
                                        {{Auth::user()->company->cname}}
                                    @else
                                        {{Auth::user()->name}}
                                    @endif
                                    <span class="caret"></span>
                                </a>

用户.php

use App\Profile;
use App\Company;

public function profile(){
        return $this->hasOne(Profile::class);
        }

    public function company(){
        return $this->hasOne(Company::class);
        }

web.php

Route::POST('employer/register', 'EmployerRegisterController@employerRegister')->name('emp.register');

Route::view('employer/register','auth.employer-register')->name('employer.register');

CompanyController.php

public function store(Request $request){

        $user_id = auth()->user()->id;
        Company::where('user_id',$user_id)->update([
            'address'=>request('address'),
            'phone'=>request('phone'),
            'website'=>request('website'),
            'slogan'=>request('slogan'),
            'description'=>request('description')
        ]);
        return redirect()->back()->with('message','Company Successfully Updated !');
    }

感谢任何帮助。

【问题讨论】:

  • 发布完整的错误堆栈。
  • 你能用这个dd(Auth::user()-&gt;company)的输出更新你的问题吗
  • @DrakulaPredator 为空

标签: php laravel object error-handling laravel-5.8


【解决方案1】:

错误抛出,因为Auth::user()-&gt;company 是Null。尝试获取这样的关系属性时使用三元运算符Auth::user()-&gt;company-&gt;cname ?? ''

<li class="nav-item dropdown">
    <a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre>
        @if(Auth::user()->user_type == 'company')
            {{Auth::user()->company->cname ?? ''}}
        @else
            {{Auth::user()->name}}
        @endif
        <span class="caret"></span>
    </a>
</li>

【讨论】:

    【解决方案2】:

    结果似乎没有返回任何东西。因为单个 = 而不是 == 尝试这样的事情:

    <li class="nav-item dropdown">
                                    <a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre>
                                        @if(Auth::user()->user_type=='company')
                                            {{Auth::user()->company->cname}}
                                        @else
                                            {{Auth::user()->name}}
                                        @endif
                                        <span class="caret"></span>
                                    </a>
    

    【讨论】:

      猜你喜欢
      • 2019-12-31
      • 2021-10-01
      • 1970-01-01
      • 2021-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多