我有兩個表,模塊(id,module_name)
和子模塊(id,module_id,sub_module_name)
。 我想顯示像這樣結構的表格:使用laravel雄辯提取兩個連接表中的數據
Sub Module ID | Module Name | Sub Module Name
Modules.php(型號)
class Modules extends Eloquent {
protected $table = 'modules';
public function submodules()
{
return $this->hasMany('SubModules','module_id');
}
}
SubModules.php(型號)
class SubModules extends Eloquent {
protected $table = 'sub_modules';
public function modules() {
return $this->belongsTo('Modules');
}
public function nodes()
{
return $this->hasMany('Nodes','sub_module_id');
}
}
AdminController.php(控制器)
public function subModules() {
return View::make('sub-modules',
array('title'=>'Sub-Modules',
'modules'=>Modules::all(),
'sub'=>Modules::with(array('submodules'))->get()
)
);
}
在我的子模塊來看,我取了$sub
變量是這樣的:
@foreach ($sub as $sub)
<tr class="gradeX">
<td>
<input type="checkbox" value="{{ $sub->id }}" id="check_{{ $sub->id }}"/>
</td>
<td>
{{ $sub->module_name }}
</td>
<td>
{{ $sub->sub_module_name }}
</td>
<td>
<a onclick="edit_sub_module({{ $sub->id }})" title="Edit"><i class="icon-edit icon-2x"></i></a>
</td>
</tr>
@endforeach
它不顯示來自sub_modules表內容($子> sub_module_name),從模塊只顯示。如何解決這個問題?並且在這兩個表中還有id
字段,我只需要來自sub_modules的id。
解決問題與此: 子模塊::加入( '模塊', 'modules.id', '=', 'sub_modules.module_id') - >選擇( 'modules.module_name' 'sub_modules *'。 ) - > get()。但任何人都知道如何用雄辯的關係來做到這一點? – devo
如果您可以讓您的評論成爲答案,以便人們在發現您的問題時能夠看到答案,那會更好。 –
@Anshad像菲爾說的那樣,把它當作答案。 Eloquents關係不會以您需要的方式爲您創建結果集。 –