【问题标题】:How to query data from a pivot table and display it using blade?如何从数据透视表中查询数据并使用刀片显示?
【发布时间】:2015-03-18 18:26:15
【问题描述】:

我正在尝试从我的数据透视表中查询数据并将其显示在我的视图中

我的观点

@foreach ($catalog_downloads as $catalog_download)
<td>
    
    <?php $frequencies = $catalog_download->export_frequencies()->get(); ?> 
    
    {{{ $frequencies }}}

</td>
@endforeach

当我{{{ $frequencies }}} 时,我得到了这个:

[{"id":1,"name":"Semi Annual","created_at":"2015-01-14 15:44:59","updated_at":"2015-01-14 15:44:59","pivot":{"catalog_download_id":104,"export_frequency_id":1}},{"id":2,"name":"Quaterly","created_at":"2015-01-14 15:45:06","updated_at":"2015-01-14 15:45:06","pivot":{"catalog_download_id":104,"export_frequency_id":2}},{"id":3,"name":"Monthly","created_at":"2015-01-14 15:45:13","updated_at":"2015-01-14 15:45:13","pivot":{"catalog_download_id":104,"export_frequency_id":3}}]

但我不希望那样。我只想要名称
所以我做了这个{{{ $frequencies-&gt;name or '' }}},现在什么都没有出现。 :(

更多详情

这是我如何定义我的关系。

public function export_frequencies(){ 
        return $this->belongsToMany('ExportFrequency','export_frequency_catalog_download','catalog_download_id','export_frequency_id');
        
    }

谁能告诉我我做错了什么?

【问题讨论】:

    标签: laravel laravel-4 eloquent laravel-blade


    【解决方案1】:

    默认情况下,Laravel 只从数据透视表中选择两个外键。要更改这一点,请将 withPivot 添加到您的关系定义中:

    public function export_frequencies(){
        return $this->belongsToMany('Frequency')->withPivot('name');
    });
    

    然后就可以通过pivot对象访问了:

    @foreach($frequencies as $frequency)
        {{ $frequency->pivot->name }}
    @endforeach
    

    编辑

    我想我被你的问题标题弄糊涂了。如果您只想显示来自ExportFrequency 的数据,则不需要withPivot,您可以这样做:

    @foreach($frequencies as $frequency)
        {{ $frequency->name }}
    @endforeach
    

    【讨论】:

    • 现在会这样做。谢谢@lukasgeiter
    • 我将-&gt;withPivot('name'); 添加到我所拥有的末尾,现在我收到了这个错误:here
    • 但是您的数据透视表有一个name 列?还是我误解了这个问题?
    • 我的数据透视表只有 3 个 id:id、catalog_download_id 和 export_frequency_id。没有 name 列 - 对不起,如果我让你感到困惑,但在 export_frequecies 表中有 name 列,我想抓住它。
    • 是的 ;) "[...] 你不需要 withPivot [...]"
    猜你喜欢
    • 2021-09-22
    • 2021-05-19
    • 2018-02-21
    • 1970-01-01
    • 2018-11-05
    • 2016-08-15
    • 2019-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多