Php Laravel 5.4如何处理JSON与关系?
我想用Laravel响应JSON,我的CategoryModel属于SongModel 这是我的分类模型Php Laravel 5.4如何处理JSON与关系?,php,json,laravel,laravel-5,laravel-5.4,Php,Json,Laravel,Laravel 5,Laravel 5.4,我想用Laravel响应JSON,我的CategoryModel属于SongModel 这是我的分类模型 class CategoryModel extends Model { protected $table = 'categories'; protected $fillable = [ 'id', 'name', ]; public function song() { return $this->
class CategoryModel extends Model
{
protected $table = 'categories';
protected $fillable = [
'id',
'name',
];
public function song()
{
return $this->hasMany(SongModel::class);
}
}
这是我的歌曲模型
class SongModel extends Model
{
protected $table = 'songs';
protected $fillable = [
'id',
'name',
'url',
'categories_id',
'singers_id',
'types_id',
];
public function category()
{
return $this->belongsTo(CategoryModel::class);
}
}
我想用这个关系来响应JSON。我写道:
class SongController extends Controller
{
public function index(SongModel $songModel)
{
$song = $songModel->category()->get();
return response()->json(["DATA" => $song], 201);
}
}
试试这个<代码>返回响应()->json([“数据”=>$songModel->load('category')->toArray()],201)代码>试试这个<代码>返回响应()->json([“数据”=>$songModel->load('category')->toArray()],201)代码>要执行此操作,您只需在返回响应之前加载关系:
public function index(SongModel $songModel)
{
$songModel->load('category');
return response()->json(["DATA" => $songModel], 201);
}
希望这有帮助 要执行此操作,您只需在返回响应之前加载关系:
public function index(SongModel $songModel)
{
$songModel->load('category');
return response()->json(["DATA" => $songModel], 201);
}
希望这有帮助 或,您可以将
与('song')
或,您可以将
与('song')一起使用
它向我显示类别为空。{“DATA”:{“category”:null}@Vichit对不起,我不是要把负载分配给
song
。我已经更新了我的答案。例如,我想这样回应{“数据”:[{“id”:3,“name”:再见,“url”:“…“category_id”:2,“category”:{“id”:2,“name”:“…”,}]}@Vichit您是否更新了我编辑的两部分,即您应该返回$songModel
而不是$song
?@Vichit是否回答了您的问题?它显示类别为空。{“DATA”:{“category”:null}@Vichit对不起,我不是要把负载分配给song
。我已经更新了我的答案。例如,我想这样回应{“数据”:[{“id”:3,“name”:再见,“url”:“…“category_id”:2,“category”:{“id”:2,“name”:“…”,}]}@Vichit你更新了我编辑的两个部分了吗,即你应该返回$songModel
而不是$song
?@Vichit回答你的问题了吗?它向我显示如下:{“数据”:{“类别”:null}@Vichit哦,我明白了。可能控制器中的$songModel
为null,因此在响应中返回null。我认为路由模型绑定的代码定义不正确。@ImPerat0R\u 2那么,我能做什么?这是我的路由。路由::资源('/api/v1/songs',SongController',['only'=>['index','show',]]);它向我显示如下:{“数据”:{“类别”:null}}@Vichit噢,我明白了。可能控制器中的$songModel
为null,因此在响应中返回null。我认为路由模型绑定的代码定义不正确。@ImPerat0R\u 2那么,我能做什么?这是我的路由。路由::资源('/api/v1/songs',SongController',['only'=>['index','show',]]);非常感谢你的回答:D非常感谢你的回答:D