Php 创建嵌套API
我试图制作一个有列表的api,在每个列表中都有另一个列表,叫做卡片,卡片列表就是这个列表中的卡片 我试图在索引函数中显示它,但没有成功,它是这样的:Php 创建嵌套API,php,json,laravel,Php,Json,Laravel,我试图制作一个有列表的api,在每个列表中都有另一个列表,叫做卡片,卡片列表就是这个列表中的卡片 我试图在索引函数中显示它,但没有成功,它是这样的: public function index() { // $list = List -> cards(); $list = List::cards(); return response( $list ); } "lists":[ 'name':listname
public function index()
{
// $list = List -> cards();
$list = List::cards();
return response( $list );
}
"lists":[
'name':listname
'cards':[
'card one': card name,
]
]
卡片型号:
public function list()
{
return $this->belongsTo( List::class() );
}
public function cards()
{
return $this->hasMany( Card::class() );
}
卡片型号:
public function list()
{
return $this->belongsTo( List::class() );
}
public function cards()
{
return $this->hasMany( Card::class() );
}
我想要输出的是json数据,如下所示:
public function index()
{
// $list = List -> cards();
$list = List::cards();
return response( $list );
}
"lists":[
'name':listname
'cards':[
'card one': card name,
]
]
belongsTo
或hasMany
接受模型名称作为第一个参数。在本例中,需要在关系方法中传递模型类名
公共功能列表()
{
返回$this->belongsTo(列表::类);
}
及
公共功能卡()
{
返回$this->hasMany(卡片::类);
}
所以,如果您想要接收包含关系的模型,您可以使用和
方法
返回响应(List::query()->with('cards');
您可以使用
Http\Resources\List:
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
class List extends JsonResource
{
public function toArray($request)
{
$cards = [];
foreach ($this->cards as $card) {
$cards[] = $card->name;
}
return [
'name' => $this->name,
'cards' => $cards,
];
}
}
Http\Controllers\ListController:
namespacce App\Http\Controllers;
use App\Http\Resources\List as ListResource;
use App\Components\List;
class ListController extends Controller
{
$lists = List::query()->get();
return ListResource::collection($lists)->response();
}
如果您使用Laravel框架使用资源进行响应,则可以在Laravel的资源中加载卡。例如,在ListController中:
public function index()
{
return ListResource::collection(List::all()->paginate());
}
在ListResource中:
public function toArray($request)
{
'cards' => CardResource::collection('cards');
}
什么是
dd($this->cards)代码>在ListResource
show?仅显示4张卡数据有8张卡这是怎么发生的?