Я учусь Ларавелу. Я запутался в одной точке.
У меня есть одна модель Trader
, которая имеет отношение один к одному с двумя другими моделями AgriculturalProduceMarketCommettee
и CategoryMaster
. Таблица traders
имеет apmc_id
и category_id
в качестве внешних ключей. Теперь я хочу показать traders_name
, apmc_branch_name
, category_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');
}
}
TraderController
public function index()
{
$traders = Trader::all();
$traderApmc = Trader::with('apmc')->get();
$traderCategory = Trader::with('categoryMaster')->get();
return view('traders.tradersDetails', compact('traders','traderApmc','traderCategory'));
}
tradersDetails.blade.php: view
<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>
Теперь в TraderController
я передаю 3 разные переменные 'traders','traderApmc','traderCategory'
для одной модели Trader
для просмотра tradersDetails
для 3 разных запросов. Но с точки зрения того, как я использовал эти переменные, я получу ошибку экземпляра коллекции, такую как
Facade\Ignition\Exceptions\ViewException
Property [apmc] does not exist on this collection instance.
Как мне передать эти переменные и получить к ним доступ? Пожалуйста, руководство. Заранее спасибо.