【问题标题】:Laravel 4 Eloquent getting the site nameLaravel 4 Eloquent 获取站点名称
【发布时间】:2013-11-01 07:32:18
【问题描述】:

我有两个通过外键关联的表:

设备表

ID 主要 Site_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');
    }

}

此时我完全迷路了。任何帮助将不胜感激

谢谢

【问题讨论】:

  • $item-&gt;site-&gt;Sitename

标签: php mysql laravel laravel-4 eloquent


【解决方案1】:

您只需致电$item-&gt;site-&gt;site_name但是为此,您的 Equipment Model 必须为 belongsTo 站点模型。否则,它可能无法正常工作。

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

    }
}

site_id 键已经在 laravel 的外键约定中,所以你不需要明确告诉他。

【讨论】:

  • 我最终意识到事后应该是属于的!!谢谢。
【解决方案2】:

你有没有尝试通过关系来获得它?:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-14
    • 2010-12-11
    • 2021-07-23
    • 1970-01-01
    • 2020-12-12
    • 2023-04-08
    • 1970-01-01
    • 2020-01-04
    相关资源
    最近更新 更多