簡體   English   中英

刀片視圖中的Laravel查詢

[英]Laravel query in blade view

您如何在blade.php翻譯此查詢

$developer_contractor_association = DeveloperContractorAssociation::whereHas('defect_types', function ($query) use($id) {
            $query->where('developer_contractor_associations.id', $id);
        })->orwhereHas('contractor', function ($query) use($id) {
            $query->where('developer_contractor_associations.id', $id);
        })->first();
    return view('dev-admin.contractors.associations.edit', ['developer_contractor_association' => $developer_contractor_association]);

我嘗試使用上面的方法,但是當涉及到刀片時,它不起作用

@foreach($developer_contractor_association as $dca_details)
    <h2> {{ $dca_details->user->name }} </h2>
    <p><i class="fas fa-map-marker-alt"></i>{{ $dca_details->contractor->address }}</p>
    <p><i class="fas fa-envelope"></i>{{ $dca_details->user->email }}</p>
    <p><i class="fas fa-phone"></i></i>{{ $dca_details->contractor->contact_no }}</p>
@endforeach

它說:

試圖獲取非對象的屬性“名稱”

更新:

我在查詢時犯了一些錯誤,我不需要foreach ,這可以修復我的代碼。 謝謝大家的幫助

<div id="contractor-details" class="col-sm-12 col-md-12">
    <h2> {{ $developer_contractor_association->contractor->user->name }} </h2>
    <p><i class="fas fa-map-marker-alt"></i>{{ $developer_contractor_association->contractor->address }}</p>
    <p><i class="fas fa-envelope"></i>{{ $developer_contractor_association->contractor->user->email }}</p>
    <p><i class="fas fa-phone"></i></i>{{ $developer_contractor_association->contractor->contact_no }}</p>
</div>

您應該使用get()而不是first() ,然后在foreach()中使用dd($dca_details)變量來查看$ dca_details是否有用戶,如果使用了dd($dca_details->user->name)

處理此錯誤的最佳方法是使用:

{{$ dca_details-> user-> name? '-'}}

那是因為一個developer_contractor_association沒有用戶。 你一定要用

@foreach($developer_contractor_association as $dca_details)
    <h2> {{ $dca_details->user->name ?? 'User absent' }} </h2>
    <p><i class="fas fa-map-marker-alt"></i>{{ $dca_details->contractor->address ?? ''}}</p>
    <p><i class="fas fa-envelope"></i>{{ $dca_details->user->email ?? ''}}</p>
    <p><i class="fas fa-phone"></i>{{ $dca_details->contractor->contact_no ?? ''}}</p>
@endforeach

或者你可以使用

@foreach($developer_contractor_association as $dca_details)
    @if(empty($dca_details->user) || empty($dca_details->contractor))
        @continue
    @endif
    <h2> {{ $dca_details->user->name }} </h2>
    <p><i class="fas fa-map-marker-alt"></i>{{ $dca_details->contractor->address }}</p>
    <p><i class="fas fa-envelope"></i>{{ $dca_details->user->email }}</p>
    <p><i class="fas fa-phone"></i>{{ $dca_details->contractor->contact_no }}</p>
@endforeach

或在控制器中使用

$developer_contractor_association = DeveloperContractorAssociation::whereHas('defect_types', function ($query) use($id) {
        $query->where('developer_contractor_associations.id', $id);
    })->orwhereHas('contractor', function ($query) use($id) {
        $query->where('developer_contractor_associations.id', $id);
    })->has('user')
   ->has('contractor')
   ->get();
return view('dev-admin.contractors.associations.edit', ['developer_contractor_association' => $developer_contractor_association]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM