【发布时间】:2019-04-05 23:05:01
【问题描述】:
我在更新属于另一个表的表时遇到问题。 我有一个用户表和一个食谱表。 Recipe 模型属于 User 模型,并且 User 模型有很多 Recipe。
每个食谱在我的索引视图中显示为一张小卡片,在该卡片以及每个单独的显示页面上,我正在打印食谱->作者。创建配方时,它会从用户表中获取用户名属性并将其设置为配方表上的作者属性。但是,当我更新用户的用户名时,食谱表中的作者属性不会相应更新。
用户模型
public function recipes(){
return $this->hasMany('App\Recipe');
}
配方模型
public function user(){
return $this->belongsTo('App\User');
}
当我更新用户时,我可以在我的 UserController 中添加一些逻辑来解决这个问题吗?
用户控制器@更新
$user = Auth::user();
$this->validate(request(), [
'name' => 'required',
'username' => 'required',
]);
// Handle File Upload
if(request()->hasfile('profile_pic')){
// Get filename with extension
$fileameWithExt = request()->file('profile_pic')->getClientOriginalName();
// Get just filename
$filename = pathinfo($fileameWithExt, PATHINFO_FILENAME);
// Get just extension
$extension = request()->file('profile_pic')->getClientOriginalExtension();
// Filename to store
$fileNameToStore = $filename . '_' . time() . '.' . $extension;
// Upload Image
$path = request()->file('profile_pic')->storeAs('public/profile_pictures', $fileNameToStore);
} else {
$fileNameToStore = 'noimage.jpg';
}
$user->name = request('name');
$user->username = request('username');
$user->description = request('description');
$user->location = request('location');
if(request()->hasFile('profile_pic')){
$user->profile_pic = $fileNameToStore;
}
$user->push();
$user_id = Auth::user()->id;
return redirect()->route('user', ['id' => $user_id]);
}
我已阅读 Laravel 文档,但找不到任何可以完全满足我要求的内容。将不胜感激任何指导!
【问题讨论】: