首页 > 解决方案 > 刀片视图中的 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>

标签: phplaravellaravel-5

解决方案


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

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

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


推荐阅读