【问题标题】:Load model variables when eager loading resources in Laravel 4在 Laravel 4 中急切加载资源时加载模型变量
【发布时间】:2013-04-20 23:14:59
【问题描述】:

我正在从 REST API 返回 JSON 数据,在该 API 中我渴望加载相关模型(在本例中为资源)。

// In my controller (FooController.php)
public function show($id)
{
  return Foo::with('bar')->find($id);
}

// In my model (Bar.php)
class Bar extends Eloquent {

  public $baz = 1;

  public function foo()
  {
    return $this->belongsTo('Foo');
  }

}

如何在使用with('bar') 的同时返回$baz 并保持对象关系?在我的视图/控制器中,我可以使用 $foo->baz 之类的方法吗?

【问题讨论】:

    标签: php orm model laravel


    【解决方案1】:

    您应该可以使用访问器执行此操作。由于 $baz 不是实际的模型属性(好吧,我假设您的问题就是这种情况),您可以执行以下操作:

    public function getBaz()
    {
      return $this->baz;
    }
    

    请参阅documentation 了解更多信息。

    【讨论】:

    • 好的,但是当getBaz() 使用with() 附加时,如何调用它? baz 是否应该与模型一起自动传递?
    • 你这是什么意思?你想获取with中的变量吗?
    • 我的模型中有paste.laravel.com/oH5FooController 中的with 加载,但是当我var_dump 返回JSON 时,baz 不存在。
    • 经过进一步研究,这与此问题有关:github.com/laravel/framework/issues/112 我知道我需要在其中手动添加值。
    猜你喜欢
    • 2013-03-27
    • 1970-01-01
    • 2014-08-13
    • 1970-01-01
    • 1970-01-01
    • 2015-03-19
    • 1970-01-01
    • 2013-06-10
    • 2013-05-16
    相关资源
    最近更新 更多