【发布时间】:2017-04-30 12:28:23
【问题描述】:
我正在为广播新闻节目编写分配系统。数据表:
station
id | calls
---| -----
1 | cxri
newscast
id | name_input | for_station_id
---|------------|---------------
1 | am | 1
assignment
id | newscast_id | user_id
1 | 1 | 5
Assignment.edit的控制器如下:
if (! Gate::allows('assignment_edit'))
return abort(401);
}
$relations = [
'anchors' => \App\User::get()->pluck('name', 'id')->prepend('Please select', ''),
'casts' => \App\Newscast::get()->pluck('name_input', 'id')->prepend('Please select', ''),
];
return view('assignment.create', $relations);
新闻广播模型:
public function for_station()
{
return $this->belongsTo(Station::class, 'for_station_id')->withTrashed();
}
现在我明白了
"casts" => Collection {#451 ▼
#items: array:2 [▼
"" => "Please select"
1 => "am"
]
}
我想要
"casts" => Collection {#451 ▼
#items: array:2 [▼
"" => "Please select"
1 => "cxri-am"
]
}
我该如何做到这一点?
或者我应该对数据进行非规范化并使用 name_input 'cxri-am' 而不是 'am'?
我的尝试:
Laravel pluck fields from relations 接受的答案
'casts' => \App\Newscast::with('station')->get()->pluck('name_input', 'id'),
错误
Call to undefined relationship [station] on model [App\Newscast]
我根据Laravel: get/show data from related tables 中的讨论包含了上面的新闻广播模型。基于该讨论,在我看来,新闻广播应该已经能够访问电台呼叫。但如上所示,调用不在 $casts 中。
【问题讨论】:
标签: laravel laravel-5.4