创建后-为什么没有return关系?
After create - why does it not return relationship?
使用 create() 创建条目时 - 为什么它 return pilot_id
table 的关系而不是仅显示 pilot_id
的值?
例如,在存储库中 class:
public function createFlight()
$flight = App\Flight::create([
'name' => 'Flight 10'
'pilot_id' => 4
]);
return $flight;
}
在控制器中:
public function show()
{
$data = $this->flight->createFlight();
return $data
}
它会在屏幕上 return json 但它没有显示 pilot_id (pilot
) 的关系 pilot_id.
尝试将以下内容添加到您的飞行模型中,就像这样。默认情况下,您需要告诉 Laravel 包含任何关系。
protected $with = ['pilot'];
每次包含关系时都会如此。如果这不是您想要的,那么您将希望在 return 飞行时加载关系,就像这样。
return $flight->load(['pilot']);
它显示 pilot_id
是 4
因为这就是它的值。您是否在 Flight
上创建了 relationship,以便 Laravel 知道如何检索 Pilot
的模型?它应该看起来像这样:
public function pilot()
{
return $this->hasOne('App\Pilot');
}
当您直接从控制器 return 模型时,它会调用 toJson()
方法将对象转换为字符串。如果您想附加相关模型的内容,您可以通过将关系添加到 Flight
模型上的 $with
变量来实现。
protected $with = ['pilot']
使用 create() 创建条目时 - 为什么它 return pilot_id
table 的关系而不是仅显示 pilot_id
的值?
例如,在存储库中 class:
public function createFlight()
$flight = App\Flight::create([
'name' => 'Flight 10'
'pilot_id' => 4
]);
return $flight;
}
在控制器中:
public function show()
{
$data = $this->flight->createFlight();
return $data
}
它会在屏幕上 return json 但它没有显示 pilot_id (pilot
) 的关系 pilot_id.
尝试将以下内容添加到您的飞行模型中,就像这样。默认情况下,您需要告诉 Laravel 包含任何关系。
protected $with = ['pilot'];
每次包含关系时都会如此。如果这不是您想要的,那么您将希望在 return 飞行时加载关系,就像这样。
return $flight->load(['pilot']);
它显示 pilot_id
是 4
因为这就是它的值。您是否在 Flight
上创建了 relationship,以便 Laravel 知道如何检索 Pilot
的模型?它应该看起来像这样:
public function pilot()
{
return $this->hasOne('App\Pilot');
}
当您直接从控制器 return 模型时,它会调用 toJson()
方法将对象转换为字符串。如果您想附加相关模型的内容,您可以通过将关系添加到 Flight
模型上的 $with
变量来实现。
protected $with = ['pilot']