これは非常に基本的なものでなければなりませんが、その方法を見つけることができないようです。
私はテーブルとユニットとアーミー(アーミーには多くのユニットが含まれています)の間に1対多の関係があり、これらは私のモデルです:
class Army extends Eloquent {
protected $guarded = array();
public static $armies = array();
protected $table = 'armies';
public function units()
{
return $this->hasMany('Unit');
}
}
と:
class Unit extends Eloquent {
protected $guarded = array();
public static $units = array();
protected $table = 'units';
public function armies()
{
return $this->belongsTo('Army', 'army');
}
}
したがって、私のユニット テーブルには、そのユニットに関連する軍の ID を含む "army" という行があり、次の方法で単純な ul リストをビューに表示したい (これをユニットに表示したい)インデックス ビュー):
<ul>
<li>Army 1 name
<li>Unit 1 of Army 1</li>
<li>Unit 2 of Army 1</li>
</li>
<li>Army 2 name
<li>Unit 1 of Army 2</li>
<li>Unit 2 of Army 2</li>
</li>
</ul>
これを行うには、ユニットコントローラーを次のようにします。
class UnitsController extends BaseController {
protected $layout = 'master';
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index()
{
$units = Unit::all();
$this->layout->content = View::make('units.index', compact('units'));
}
/*Other stuff*/
}
そして私の見解では(ビュー/ユニット内のindex.blade.php):
<ul class="units">
@foreach($units as $unit)
{{$unit->army}}
<li>
{{ HTML::link(route('units.show', ['units' => $unit->id]), $unit->name)}}
</li>
@endforeach
</ul>
しかし、{{$unit->army}} は (もちろん) 軍の ID を表示しているだけで、その名前が欲しいのですが、どうすればよいでしょうか?