如何使用Laravel 5临时隐藏模型关系属性

如何使用Laravel 5临时隐藏模型关系属性,laravel,laravel-5,eloquent,Laravel,Laravel 5,Eloquent,我已经读过怎么做了。 我想暂时隐藏模型关系属性 比如说 { "slug": "google-chrome", "name": "Google Chrome", "description": { "text": null, "created_at": "2016-12-05 12:16:38", "updated_at": "2016-12-05 12:16:38" } 仅在此查询中隐藏description.crea

我已经读过怎么做了。 我想暂时隐藏模型关系属性

比如说

{
    "slug": "google-chrome",
    "name": "Google Chrome",
    "description": {
         "text": null,
         "created_at": "2016-12-05 12:16:38",
         "updated_at": "2016-12-05 12:16:38"
}
仅在此查询中隐藏description.created_at的语法是什么? 在我的软件控制器里我有

public function show(Request $request, $slug)
{
    $models = Software::query();

    $model =
        $models
        ->where('slug', $slug)
        ->firstOrFail()
        ->makeHidden([
            'description.created_at',
        ]);

    return $model;
}
这个语法似乎不起作用?可能吗?

makeHidden()
不支持点表示法

您应该在相关模型上调用makeHidden:

$model = $models
        ->where('slug', $slug)
        ->firstOrFail();

$model->description->makeHidden('created_at');
请注意,这仅在您只有一个结果时有效。如果要在集合上执行此操作,必须在iTen上迭代,并为每个项目运行makeHidden。

makeHidden()
不支持点表示法

您应该在相关模型上调用makeHidden:

$model = $models
        ->where('slug', $slug)
        ->firstOrFail();

$model->description->makeHidden('created_at');
请注意,这仅在您只有一个结果时有效。如果要在集合上执行此操作,必须在iten上迭代,并为您拥有的每个项运行makeHidden