Php Laravel:如何为不同的查询传递一个模型的一个变量到视图,以及如何在视图中访问它

Php Laravel:如何为不同的查询传递一个模型的一个变量到视图,以及如何在视图中访问它,php,laravel,eloquent,Php,Laravel,Eloquent,我在学拉威尔。有一点我很困惑 我有一个模型Trader,它与另外两个模型Agricultural Product MarketCommette和CategoryMaster有一对一的关系。 traders表将apmc\u id和category\u id作为外键。现在我想在一个表中显示traders\u name,apmc\u branch\u name,category\u name 交易员模型 <?php namespace App; use Illuminate\Database

我在学拉威尔。有一点我很困惑

我有一个模型
Trader
,它与另外两个模型
Agricultural Product MarketCommette
CategoryMaster
有一对一的关系。
traders
表将
apmc\u id
category\u id
作为外键。现在我想在一个表中显示
traders\u name
apmc\u branch\u name
category\u name

交易员模型

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Trader extends Model
{
       /**
     * The database table used by the model.
     *
     * @var string
     */
    protected $table = 'traders';

    // primary key
   public $primaryKey = 'traders_id';

    //timestamps
    public $timestamps = true;

      /**
       * Attributes that should be mass-assignable.
       *
       * @var array
       */
      protected $fillable = [
          'apmc_id','category_id', 'traders_name', 'traders_address','traders_contact_number'
      ];


    /**
 * Get the apmc that has the trader.
 */
public function apmc()
{
    return $this->belongsTo('App\AgriculturalProduceMarketCommettee', 'apmc_id');
}


    /**
 * Get the category that has the trader.
 */
public function categoryMaster()
{
    return $this->belongsTo('App\CategoryMaster', 'category_id');
}

}
tradersDetails.blade.php:查看

 <table id="example1" class="table table-bordered table-striped">
                        <thead>
                        <tr>
                          <th>Trader Name</th>
                          <th>APMC Branch Name</th>
                          <th>Category Name</th>

                        </tr>
                        </thead>
                        <tbody>
                          @if(count($traders) >= 1)
                          @foreach ($traders as $trader)

                        <tr>
                            <td> {{$trader->traders_name}} </td>
                            <td> {{$traderApmc->apmc->apmc_branch_name}} </td>  
                            <td> {{$traderCategory->categoryMaster->category_name}} </td> 
                        </tr>
                        @endforeach 
                        @else
                        <p>No records found!</p>
                        @endif
                        </tbody>
                     </table>

商号
APMC分支机构名称
类别名称
@如果(计数($traders)>=1)
@foreach($traders作为$trader)
{{$trader->traders\u name}
{{$traderApmc->apmc->apmc\u分支机构名称}
{{$traderCategory->categoryMaster->category_name}
@endforeach
@否则
没有找到任何记录

@恩迪夫
现在在
TraderController
中,我为一个模型
Trader
传递了3个不同的变量
'traders','traderApmc','traderCategory'
,以查看3个不同查询的
tradersDetails
。但考虑到我使用的方式,变量会给我错误的集合实例,比如

Facade\Ignition\Exceptions\ViewException
属性[apmc]在此集合实例上不存在。

我应该如何传递这些变量并在视图中访问它们?
请导游。提前感谢。

您可以使用以下变量组合,而不是使用3个变量:

$trader = Trader::with(['apmc','categoryMaster'])->get();
传递到您的视图:

return view('traders.tradersDetails', compact('traders'));
@foreach ($traders as $trader)
   <tr>
       <td> {{$trader->traders_name}} </td>
       <td> {{$trader->apmc->apmc_branch_name}} </td>  
       <td> {{$trader->categoryMaster->category_name}} </td> 
  </tr>
@endforeach 
您可以在视图中使用它:

return view('traders.tradersDetails', compact('traders'));
@foreach ($traders as $trader)
   <tr>
       <td> {{$trader->traders_name}} </td>
       <td> {{$trader->apmc->apmc_branch_name}} </td>  
       <td> {{$trader->categoryMaster->category_name}} </td> 
  </tr>
@endforeach 
@foreach($traders作为$trader)
{{$trader->traders\u name}
{{$trader->apmc->apmc_分支机构_name}
{{$trader->categoryMaster->category_name}
@endforeach

您的traders表中是否存在apmc列,或者它是apmc\u id?
traders
表将
apmc\u id
category\u id
作为外键。我已经提到了这个问题。如果是这样的话,你是如何从交易者模型中获取“apmc”的?该模型反映了正在使用的表。如果它是外键,您要做的是从该表中获取它,因此类似于Category::where('id',$traders['Category_id']->get();发布的问题是,如果我错了,请更正我;Facade\Ignition\Exceptions\ViewException属性[apmc]此集合中不存在,该集合基本上表示值apmc不在traders集合中。@Poldo有效!!非常感谢您的帮助。我已经搜索了解决方案,如何将该查询合并到一个查询中,以便在视图中使用一个变量。但找不到解决方案。感谢您。学会了新方法。