我有两个非常简单的模型:
Machined_Cam-2286
基本上每个剧集都有一个内容。我可以使用单个表,但我认为将这些数据集分开是有意义的。
在表格中,我想同时编辑剧集及其内容,但经过几次尝试后我还没弄清楚如何。
这就是我正在做的事情:
class Episode extends Model
{
protected $fillable = ['number', 'language_code', 'published_at'];
function content()
{
return $this->hasOne('App\EpisodeContent');
}
}
class EpisodeContent extends Model
{
protected $table = 'episodes_content';
protected $fillable = ['episode_id', 'title', 'description'];
function episode()
{
return $this->belongsTo('App\Episode');
}
}
这样,episodes_content表中没有任何变化。
在另一次尝试中,我尝试了这个:
public function update(Request $request, $id)
{
$rules = [
'number' => 'required',
];
$this->validate($request, $rules);
$episode = Episode::with('content')->findOrFail($id);
$episode->published_at = $request->get('published_at');
$episode->number = $request->get('number');
$episode->content->title = $request->get('title');
$episode->update();
return redirect('admin/episodes');
}
这样就创建了一个新的episodes_content行,而我想更新一个现有的行。
答案 0 :(得分:0)
试试这个我想它会起作用
$episode = Episode::with('content',function($query) use($id){
$query->where('episode_id',$id);
})->where('id',$id);
这里我假设您的字段名称在父表中是id,在子表中是episode_id。如果它不起作用,请告诉我。