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有效!!非常感谢您的帮助。我已经搜索了解决方案,如何将该查询合并到一个查询中,以便在视图中使用一个变量。但找不到解决方案。感谢您。学会了新方法。