为了账号安全,请及时绑定邮箱和手机立即绑定

刀片视图中的 Laravel 查询

刀片视图中的 Laravel 查询

PHP
守着一只汪 2022-01-14 16:51:47
你如何翻译这个查询 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>
查看完整描述

2 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

您应该使用get()而不是first(),然后使用dd($dca_details)变量 inforeach()查看 $dca_details 是否有用户,如果它有使用 dd($dca_details->user->name)

处理此错误的最佳方法是使用:

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


查看完整回答
反对 回复 2022-01-14
?
慕森卡

TA贡献1806条经验 获得超8个赞

那是因为一个 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]);



查看完整回答
反对 回复 2022-01-14
  • 2 回答
  • 0 关注
  • 139 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号