0

外国語キーで関連付けられた 2 つのテーブルがあります。

装備表

ID primary Site_ID foregin UnitNo Model

サイト テーブル

ID サイト名

機器テーブルからすべての機器を表示したいのですが、site_id がどこにあるのか、サイト名を表示したいのです。

私はlaravel 4が初めてで、これを作成する方法に本当にこだわっています。私のコードは次のとおりです。

<?php var_dump($equipment); ?>

@foreach($equipment as $item)
<ul>
    <li>{{$item->site_id}}</li>
    <li>{{$item->unitNo}}</li>
    <li>{{$item->Model}}</li>
</ul>
@endforeach

コントローラ:

<?php

class EquipmentController extends BaseController {

/**
 * Display a listing of the resource.
 *
 * @return Response
 */
public function index()
{

    $equipment = equipment::all();


    return View::make('equipment.index', compact('equipment'));
}

機器モデル

<?php
class Equipment extends Eloquent {
protected $guarded = array();

public static $rules = array();


public function site()
    {
        return $this->hasOne('site', 'site_id');
    }

}

サイト モデル

<?php

class Site extends Eloquent {
protected $guarded = array();

public static $rules = array();


public function equipment()
    {
        return $this->hasMany('equipment');
    }

}

私はこの時点で完全に迷っています。ヘルプヘルプは感謝されます

ありがとう

4

2 に答える 2

0

に電話するだけ$item->site->site_nameです。しかし、そのためにEquipment Modelは、belongsToSite Model が必要です。それ以外の場合は、機能しない場合があります。

public function site()
    {
        return $this->belongsTo('Site');

    }
}

site_idキーはすでにlaravelのフォアキーの規則にあるため、明示的に彼に伝える必要はありません。

于 2013-10-23T16:06:33.597 に答える