【发布时间】:2017-01-25 00:07:02
【问题描述】:
我正在做一个 laravel 项目,我想允许用户发布图片,但我收到了这个错误:
HasOneOrMany.php 第 221 行中的 FatalThrowableError:类型错误:参数 1 传递给 Illuminate\Database\Eloquent\Relations\HasOneOrMany::save() 必须是 Illuminate\Database\Eloquent\Model 的实例,没有给出,调用 我的状态控制器。
这是我的状态控制器代码:
class StatusController extends Controller {
public function postStatus(Request $request){
$this->validate($request, [
'status' => 'required|max:250',
]);
Auth::user()->statuses()->create([
'body' => $request->input('status'),
]);
if($request->hasFile('image')){
$image = $request->file('image');
$filename = Auth::user()->username . time() . "." . $image->getClientOriginalExtension();
Image::make($image)->fit(300,300)
->save(public_path("/uploads/images/" . $filename ));
$statuses = Auth::user()->statuses();
$statuses->image = $filename;
$statuses->save();
}
return redirect()->route('home')->with('info', 'Status posted.');
}
在我的用户模型中我有这个
public function statuses() {
return $this->hasMany('App\Models\Status', 'user_id');
}
有什么建议吗?
【问题讨论】:
-
$statuses->save()行期望给出一个模型。所以你应该做$statuses->save(StatusModelHere) -
感谢回复,但我对 laravel 有点陌生,我应该把什么模型放在那里?
标签: php laravel laravel-5 eloquent