我正在做一個laravel專案。在這個專案中,當我試圖查看和編輯個人資料頁面時。我得到了這個錯誤。
ErrorException 試圖獲取非物件的屬性'image'(View: C:xampphtdocsHomeServices esourcesviewslivewiresprovidersprovider-profile-component.blade.php) http://127.0.0.1:8000/sprovider/profile
SproviderProfileComponent.php :-
<?php
namespace AppHttpLivewireSprovider。
使用 AppModelsServiceProvider。
使用 IlluminateSupportFacadesAuth。
使用 LivewireComponent。
class SproviderProfileComponent extends Component
{
public function render()
{
$sprovider = ServiceProvider::where('user_id',Auth::user()-> id)-> first();
return view('livewire.sprovider. sprovider-profile-component',['sprovider'=>$sprovider])->布局('layouts.base')。
}
Models/ServiceProvider.php :-
<?php
namespace AppModels。
use IlluminateDatabaseEloquentFactoriesHasFactory。
use IlluminateDatabaseEloquentModel;
class ServiceProvider extends Model
{
use HasFactory;
protected $fillable = ['user_id']。
public function category()
{
return $this-> belongsTo(ServiceCategory::class,'service_category_id') 。
}
sprovider-profile-component.blade.php
<div class="panel-body" >
<div class="row" >
<div class="col-md-4">
@if($sprovider->image)
<img src="{asset('images/sproviders')}}/{{$sprovider-> image}}" width="100%" />
否則
<img src="{{asset('images/sproviders/default.jpg')}}" width="100%" />
@endif
</div>
<div class="col-md-8">
<h3>名稱。{{Auth::user()->name}}</h3>
<p>{{$sprovider-> about}}</p>
<p><b>電子郵件: </b>{{Auth::user()->email}}</p>
<p><b>電話: </b>{{Auth::user()->phone}}</p>
<p><b>城市: </b>{{$sprovider->城市}}</p>
<p><b>服務類別: </b>
@if($sprovider-> service_category_id)
{{$sprovider->category->name}}。
@endif
</p>
<p><b>服務地點。{{$sprovider-> service_locations}}</b></p>
<a href="{{route('sprovider.edit_profile')}}" class="btn btn-info pull-right"> 編輯資料</a>
</div>
</div>
</div>
uj5u.com熱心網友回復:
這可能發生的唯一原因是$sprovider是null。
當它發生時,$sprovider->image將翻譯成(null)->image,這確實是試圖獲取非物件的屬性'image'。
你可以這樣做來防止$sprovider成為null:
$sprovider = ServiceProvider::where('user_id',Auth::user()-> id)-> firstOrFail() 。
通過使用firstOrFail而不是first,你可以確保$sprovider永遠不會是null(就像它的名字一樣,如果它沒有找到任何提供者,它將失敗)。
你會遇到另一個錯誤,說找不到提供者,這是另一個問題,可能是因為你沒有這個用戶的任何提供者或類似的東西。
uj5u.com熱心網友回復:
兩種可能性
<醇>$sprovider是空的,并且
image key is not available in $sprovider ($sprovider->image)可能是你在資料庫表中拼錯了image,所以為此只需使用dd($sprovider);或print_r($sprovider);并檢查image key是否可用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/307818.html
標籤:
上一篇:UTF8編碼的資訊在phpsmpp短信發送中被破壞的角色
下一篇:如何根據子串對字串進行排序JS
