gpt4 book ai didi

php - 在 laravel 中急切加载时关系数组为 null

转载 作者:可可西里 更新时间:2023-10-31 23:48:30 30 4
gpt4 key购买 nike

在 Laravel 4 中急切加载时,我在获取关系数组时遇到问题。例如:

Controller :

         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 表不是通过 laravel 创建的,它们以前存在。 Apps 表中的 app_ip 列与 extra 表中的 ip 列相关。这是一对一的关系,我在关系函数中指定了主键。我正在恢复关系,所以我知道它正在发挥作用。

当我直接调用该函数时,我能够取回关系数据,但当我尝试打印完整数组时,它不显示关系数据。主要目标是能够在一个响应中同时返回关系列和应用程序列。

最佳答案

你需要这样做:

$apps = Apps::all();
$apps->load('extra');
foreach ($apps as $app)
{
print_r($app->toArray()); // prints your relationship data as well
}

关于php - 在 laravel 中急切加载时关系数组为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19236262/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com