尝试获取非对象 属性 'cname' Laravel php 5.8
Trying to get property 'cname' of non-object Laravel php 5.8
我正在学习laravel 5.8,我正在建设一个求职门户网站。
我的问题是为什么会出现这个错误。我已经检查了我的 table,显然,我在公司 table 中有一个列 cname(公司名称)。而且我还有一个对象。
以下是我的代码。如果有人帮助我,我真的很高兴。
此代码用于识别用户是求职者还是雇主。
我想报名求职
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>
user.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 !');
}
感谢任何帮助。
错误抛出,因为 Auth::user()->company
是 Null
。尝试获取这样的关系属性时使用三元运算符 Auth::user()->company->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>
结果似乎 return 什么都没有。因为单个 = 而不是 == 尝试这样的事情:
<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>
我正在学习laravel 5.8,我正在建设一个求职门户网站。
我的问题是为什么会出现这个错误。我已经检查了我的 table,显然,我在公司 table 中有一个列 cname(公司名称)。而且我还有一个对象。
以下是我的代码。如果有人帮助我,我真的很高兴。
此代码用于识别用户是求职者还是雇主。 我想报名求职
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>
user.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 !');
}
感谢任何帮助。
错误抛出,因为 Auth::user()->company
是 Null
。尝试获取这样的关系属性时使用三元运算符 Auth::user()->company->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>
结果似乎 return 什么都没有。因为单个 = 而不是 == 尝试这样的事情:
<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>