在 laravel 4 中急切加载时,我在获取关系数组时遇到问题。例如:
控制器:
foreach (Apps::with('extra')->get() as $app)
{
print_r($app->toArray());//returns array but my relationship array at the bottom says null
echo $app->extra; //this will show my relationship details
}
模型:
class Apps extends Eloquent
{
protected $connection = 'mysql_2';
protected $table = 'apps';
public $timestamps = false;
protected $primaryKey = 'name';
public function host()
{
return $this->belongsTo('Hosts','name');
}
public function extra()
{
$this->primaryKey='app_ip';
return $this->hasone('Extra','ip');
}
//other functions below.......
}
class Extra extends Eloquent
{
protected $connection = 'mysql_3';
protected $table = 'extra';
public $timestamps = false;
protected $primaryKey = 'ip';
public function app(){
return $this->belongsTo('Apps', 'app_ip');
}
mysql:
我的 mysql 表不是通过 laravel 创建的,它们以前存在。Apps 表中的 app_ip 列与额外表中的 ip 列相关。这是一对一的关系,我在关系函数中指定了主键。我正在恢复关系,所以我知道它正在起作用。
当我直接调用该函数时,我能够取回关系数据,但是当我尝试打印完整数组时它不显示关系数据。主要目标是能够在一个响应中同时返回关系列和应用列。