Laravel雄辩的财产不';此集合中不存在

Laravel雄辩的财产不';此集合中不存在,laravel,laravel-5,eloquent,Laravel,Laravel 5,Eloquent,我有业务和地址表以及数据透视表 当用户点击他们想要查看的业务时,会搜索业务id,并使用我想要的id获取其所属地址的详细信息。所以我有这样的想法: public function displayBusiness($id) { /* $business = Business::with('addresses')->find($id); $session = session()->put('key', $id); $gallery = Gallery::wh

我有业务和地址表以及数据透视表

当用户点击他们想要查看的业务时,会搜索业务id,并使用我想要的id获取其所属地址的详细信息。所以我有这样的想法:

public function displayBusiness($id) {
    /*
    $business = Business::with('addresses')->find($id);
    $session = session()->put('key', $id);
    $gallery = Gallery::where('business_id', $id)->get();
    $location = Location::where('business_id', $id)->get();
    $review = Review::where('business_id', $id)->get();
        return view('displayBusiness', compact('business', 'address', 'gallery', 'location', 'review', 'items'));
}

我的商业模式:

public function addresses()
{
    return $this->belongsToMany('App\Address', 'business_address', 'business_id', 'address_id');
}
public function businesses()
{
    return $this->belongsToMany('App\Business', 'business_address', 'business_id', 'address_id');
}
地址模型:

public function addresses()
{
    return $this->belongsToMany('App\Address', 'business_address', 'business_id', 'address_id');
}
public function businesses()
{
    return $this->belongsToMany('App\Business', 'business_address', 'business_id', 'address_id');
}
在我看来:

<div class="container container2">
        <div id="left" class="logo2">
        <img class="images" id="image" src="{{ asset($business->image) }}" />
            <form class="upload_form" action="{{ action('ImageController@image') }}" enctype="multipart/form-data" role="form" method="POST">
            <input type="hidden" name="_token" value="{{ csrf_token() }}">
            <input style="width: 100%;height: 100%; opacity: 0;" name="img" id="img" class="img" data-input="false" type="file" data-buttonText="Upload Logo" data-size="sm" data-badge="false" onchange="submitImage();" />
                </form>
        </div>
<!-- Business Information -->
        <div class="info sortable">
        <input type="hidden" name="id" value="{{$business->id}}"/>

            <p>{{$business->name}}</p>
            <p>{{$business->email}}</p>
            <p>{{$business->addresses->firstline_address}}</p>
            <p>{{$business->addresses->secondline_address}}</p>
            <p>{{$business->addresses->town}}</p>
            <p>{{$business->addresses->city}}</p>
            <p>{{$business->addresses->postcode}}</p>
            <p>{{$business->addresses->telephone}}</p>
        </div>

图像)}}}”/>
{{$business->name}

{{$business->email}

{{$business->address->firstline_address}

{{$business->address->secondline_address}

{{$business->address->town}

{{$business->address->city}

{{$business->address->postcode}

{{$business->地址->电话}

但是,我得到一个错误:

此集合实例上不存在属性[firstline_address]

如何解决这个问题?

像这样试试

$business->addresses()->value('firstline_address');
像这样试试

$business->addresses()->value('firstline_address');

给定地址-业务是多个关系,地址是一个集合,因此请尝试这样做

@foreach( $business->addresses as $address )
   <p>{{$address->firstline_address}}</p>
   .....
@endforeach
@foreach($business->地址为$address)
{{$address->firstline_address}

..... @endforeach
给定地址-业务是一种多人关系,地址是一个集合,因此请尝试这样做

@foreach( $business->addresses as $address )
   <p>{{$address->firstline_address}}</p>
   .....
@endforeach
@foreach($business->地址为$address)
{{$address->firstline_address}

..... @endforeach
您不能执行
$business->address->firstline\u address
,因为
$business->address
是地址的集合,而不是单个对象

您有两种选择:

选项1:foreach循环:

@forelse({{$business->addresses as $adresse)
    <p>{{$adresse->firstline_address}}</p>
        <p>{{$adresse->secondline_address}}</p>
        <p>{{$adresse->town}}</p>
        <p>{{$adresse->city}}</p>
        <p>{{$adresse->postcode}}</p>
        <p>{{$$adresse->telephone}}</p>
@empty
    <p> No Adresses </p>
@endforelse
@forelse({{{$business->地址为$address)
{{$ADRESE->第一行地址}

{{$adresse->第二行地址}

{{$ADRESE->town}

{{$ADRESE->city}

{{$ADRESE->邮政编码}

{{$$ADRESE->电话}

@空的 没有地址

@endforelse
选项2:您只需要第一个地址

        <p>{{$business->name}}</p>
        <p>{{$business->email}}</p>
        <p>{{$business->addresses->first()->firstline_address}}</p>
        <p>{{$business->addresses->first()->secondline_address}}</p>
        <p>{{$business->addresses->first()->town}}</p>
        <p>{{$business->addresses->first()->city}}</p>
        <p>{{$business->addresses->first()->postcode}}</p>
        <p>{{$business->addresses->first()->telephone}}</p>
{{$business->name}

{{$business->email}

{{$business->address->first()->firstline_address}

{{$business->address->first()->secondline_address}

{{$business->addresses->first()->town}

{{$business->address->first()->city}

{{$business->address->first()->postcode}

{{$business->address->first()->telephone}


您不能执行
$business->address->firstline\u address
,因为
$business->address
是地址的集合,而不是单个对象

您有两种选择:

选项1:foreach循环:

@forelse({{$business->addresses as $adresse)
    <p>{{$adresse->firstline_address}}</p>
        <p>{{$adresse->secondline_address}}</p>
        <p>{{$adresse->town}}</p>
        <p>{{$adresse->city}}</p>
        <p>{{$adresse->postcode}}</p>
        <p>{{$$adresse->telephone}}</p>
@empty
    <p> No Adresses </p>
@endforelse
@forelse({{{$business->地址为$address)
{{$ADRESE->第一行地址}

{{$adresse->第二行地址}

{{$ADRESE->town}

{{$ADRESE->city}

{{$ADRESE->邮政编码}

{{$$ADRESE->电话}

@空的 没有地址

@endforelse
选项2:您只需要第一个地址

        <p>{{$business->name}}</p>
        <p>{{$business->email}}</p>
        <p>{{$business->addresses->first()->firstline_address}}</p>
        <p>{{$business->addresses->first()->secondline_address}}</p>
        <p>{{$business->addresses->first()->town}}</p>
        <p>{{$business->addresses->first()->city}}</p>
        <p>{{$business->addresses->first()->postcode}}</p>
        <p>{{$business->addresses->first()->telephone}}</p>
{{$business->name}

{{$business->email}

{{$business->address->first()->firstline_address}

{{$business->address->first()->secondline_address}

{{$business->addresses->first()->town}

{{$business->address->first()->city}

{{$business->address->first()->postcode}

{{$business->address->first()->telephone}


这很好用。你能解释一下你的代码和我的代码有什么不同吗?还有我怎么说->地址是否为空?例如,显示未知?如果你使用
dd()
对于检索到的数据,您可以看到数据的结构。实际上我在这里所做的是调用您创建的模型并访问值。它是用于
()
必须存在并且
value
用于获取特定列的值。可能有不同的方式我可能不知道…对于验证,您可以使用PHPso中的
isset
empty
方法,类似于if(!empty($business->addresses())然后做点什么?这很好。你能解释一下你的代码和我的代码之间的区别吗?还有我怎么说->地址是否为空?例如显示未知?如果你使用
dd()
对于检索到的数据,您可以看到数据的结构。实际上我在这里所做的是调用您创建的模型并访问值。它是用于
()
必须存在并且
value
用于获取特定列的值。可能有不同的方式我可能不知道…对于验证,您可以使用PHPso中的
isset
empty
方法,类似于if(!empty($business->addresses())然后做些什么?如果$address是空的,你会如何添加以显示其他内容?@if(empty($business->addresses))/@else@foreach---@endif。请注意@和关键字之间添加的空格。stackoverflow认为我指的是用户名。如果$address是空的,你会如何添加以显示其他内容?@if(empty)($business->addresses))/@else@foreach---@endif。请注意@和关键字之间添加的空格。stackoverflow认为我指的是用户名