gpt4 book ai didi

laravel - 将参数传递给 laravel Eloquent api 资源构造函数

转载 作者:行者123 更新时间:2023-12-02 19:39:57 24 4
gpt4 key购买 nike

我如何将 args 传递给 Laravel Eloquent API Resources 构造函数并将其获取到响应时返回的条件数据?

我尝试了什么:

Controller

$user = User::find(1);
return new UserResource($user, $shortData = true);

API 资源:

public function toArray($request, $shortData)
{
if($short) {
return $shortData;
} else {
return $fullData;
}
}

最佳答案

你必须做这样的事情:

  • 在您的构造函数中添加条件数据(就像您所做的那样)。此条件数据可以为空:
$user = User::find(1);
return new UserResource($user, $conditionalData);
  • 然后在您的 UserResource 中,将条件数据添加为私有(private)属性,并像这样将其添加到您的构造函数中(它也适用于 PHP 默认参数值...):
private $conditionalData;

public function __construct(User $resource, ?string $conditionalData)
{
parent::__construct($resource);
$this->conditionalData = $conditionalData;
}
public function toArray($request)
{
return [
'data_1' => $this->data1,
'data_2' => $this->data2,
'conditional_data' => $this->when(!is_null($this->conditionalData), $this->$conditionalData)
];
}

仅当属性不为空时,您的条件数据才会出现在您的响应中。

关于laravel - 将参数传递给 laravel Eloquent api 资源构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60408176/

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