2016-04-16 25 views
0

我正在構建一個小的laravel應用程序的初始級別。我在代碼中出現錯誤,無法解決。 下面是代碼調用一個非對象的成員函數save()

樁模型

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class post extends Model 
{ 
    public function user() 
    { 
     return $this->belongsTo('app\user'); 
    } 
} 

用戶模型

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'); 
    } 
} 

PostController中

namespace App\Http\Controllers; 
use App\post; 
use Illuminate\Http\Request; 

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'); 
    } 
} 

謝謝你提前任何從試圖解決這個查詢。

+0

用戶模型在哪裏? – aimme

+0

我編輯了帖子! –

+1

在postCreatePost()方法內的$ user上執行dd操作,輸出結果如何? – aimme

回答

4

確保在用戶模型中返回關係。

class user extends Model implements Authenticatable 
{ 
    use \Illuminate\Auth\Authenticatable; 
    public function posts() 
    { 
     return $this->hasMany('app\post'); 
    } 
} 

您發佈的代碼不具有returnposts函數內。

+0

最新差異在你的和我的代碼? –

+0

你錯過了它的「迴歸」 – temporalslide

+1

嘿東西有效......等待! –

1

我認爲這應該可以解決

你的表字段添加到保護$可填寫= []數組

用戶

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class post extends Model 
{ 
    protected $fillable = ['body']; 

    public function user() 
    { 
     return $this->belongsTo('app\user'); 
    } 
} 

namespace App; 

use Illuminate\Contracts\Auth\Authenticatable; 
use Illuminate\Database\Eloquent\Model; 


class user extends Model implements Authenticatable 
{ 

    use \Illuminate\Auth\Authenticatable; 

    protected $fillable = ['username', 'field2', 'blabla']; 

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

PostController中

namespace App\Http\Controllers; 
use App\post; 
use Illuminate\Http\Request; 

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

! –

+0

添加您的表字段到模型中的可填充數組 – aimme

+0

非常感謝您的幫助...但我缺少模型返回..現在它工作:)謝謝你這樣一個gud的傢伙! –

相關問題