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 列は、extra テーブルの ip 列に関連しています。これは 1 対 1 の関係であり、関係関数で主キーを指定しました。私は関係を取り戻しているので、それが機能していることを知っています.
関数を直接呼び出すと関係データを取得できますが、配列全体を印刷しようとすると関係データが表示されません。主な目標は、関係列とアプリ列の両方を 1 回の応答で返せるようにすることです。