簡體   English   中英

laravel 5.7錯誤:在null上調用成員函數save()

[英]laravel 5.7 Error: Call to a member function save() on null

我正在使用Laravel Framework 5.7.25
我正在嘗試由已經登錄的當前用戶創建一個帖子。
但我面臨這些錯誤:

在null上調用成員函數save() 會出錯:這是我的PostController:

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Post;

class PostController extends Controller
{
    public function postCreatePost(Request $request)
    {
        $post = new Post();
        $post->body=$request['body'];
        $request->user()->posts()->save($post);
        return redirect()->route('dashboard');
    }
}

這是郵政模型

<?php
namespace App;
use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    public function user()
    {
        $this->belongsTo('App\User');
    }
}

這是用戶模型

<?php
namespace App;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;

class User extends Model implements Authenticatable
{
 use \Illuminate\Auth\Authenticatable;
  public function posts()
  {
      $this->hasMany('App\Post');
  }
}

您的user()posts()關系未返回任何內容:

public function posts() {
    $this->hasMany('App\Post');
}

需要成為:

public function posts() {
    return $this->hasMany('App\Post');
}

和對user()所做的相同調整。

我會稍微更改您的代碼,這應該可以工作:

class PostController extends Controller
{
    public function postCreatePost(Request $request)
    {
        $request->user()->posts()->create($request->only('body'));

        return redirect()->route('dashboard');
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM