刀片视图中的 Laravel 查询

你如何翻译这个查询 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>


守着一只汪
浏览 140回答 2
2回答

翻阅古今

您应该使用get()而不是first(),然后使用dd($dca_details)变量 inforeach()查看 $dca_details 是否有用户,如果它有使用&nbsp;dd($dca_details->user->name)处理此错误的最佳方法是使用:{{ $dca_details->user->name ??&nbsp;'-' }}

慕森卡

那是因为一个 developer_contractor_association 没有用户。你必须使用@foreach($developer_contractor_association as $dca_details)&nbsp; &nbsp; <h2> {{ $dca_details->user->name ?? 'User absent' }} </h2>&nbsp; &nbsp; <p><i class="fas fa-map-marker-alt"></i>{{ $dca_details->contractor->address ?? ''}}</p>&nbsp; &nbsp; <p><i class="fas fa-envelope"></i>{{ $dca_details->user->email ?? ''}}</p>&nbsp; &nbsp; <p><i class="fas fa-phone"></i>{{ $dca_details->contractor->contact_no ?? ''}}</p>@endforeach或者你可以使用@foreach($developer_contractor_association as $dca_details)&nbsp; &nbsp; @if(empty($dca_details->user) || empty($dca_details->contractor))&nbsp; &nbsp; &nbsp; &nbsp; @continue&nbsp; &nbsp; @endif&nbsp; &nbsp; <h2> {{ $dca_details->user->name }} </h2>&nbsp; &nbsp; <p><i class="fas fa-map-marker-alt"></i>{{ $dca_details->contractor->address }}</p>&nbsp; &nbsp; <p><i class="fas fa-envelope"></i>{{ $dca_details->user->email }}</p>&nbsp; &nbsp; <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) {&nbsp; &nbsp; &nbsp; &nbsp; $query->where('developer_contractor_associations.id', $id);&nbsp; &nbsp; })->orwhereHas('contractor', function ($query) use($id) {&nbsp; &nbsp; &nbsp; &nbsp; $query->where('developer_contractor_associations.id', $id);&nbsp; &nbsp; })->has('user')&nbsp; &nbsp;->has('contractor')&nbsp; &nbsp;->get();return view('dev-admin.contractors.associations.edit', ['developer_contractor_association' => $developer_contractor_association]);
打开App,查看更多内容
随时随地看视频慕课网APP