У меня есть две таблицы, модули (id,module_name)
и sub_modules (id,module_id,sub_module_name)
. Я хочу, чтобы отобразить таблицу, как эта структура:Извлечь данные из двух соединенных таблиц с использованием laravel eloquent
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.
решаемая проблема с этим: подмодулях :: присоединиться ('модули', 'modules.id', '=', 'sub_modules.module_id') -> выберите ('modules.module_name' 'sub_modules *.) -> get(). Но кто-нибудь знает, как это сделать с красноречивым отношением? – devo
Было бы лучше, если бы вы могли ответить на свой комментарий, чтобы люди увидели его, когда нашли свой вопрос. –
@ Аншад, как говорит Фил, ставит его в качестве ответа. Отношения между мужчинами и женщинами не будут создавать набор результатов для вас так, как вам нужно. –