2017-09-13 2 views
1

So habe ich ein Posts-Modell, das viele Kommentare und gehört zu einem Benutzer, also wenn ich einen Kommentar hinzufügen möchten, die zu einem Beitrag und einem Benutzer gehört, muss ich ihm einen Benutzer geben eine ID, und das habe ich versucht.Laravel KommentareController nicht genug Argumente übergeben user_id

use App\Posts; 
use App\Comment; 
class CommentsController extends Controller 
    { 
    public function store(Posts $post) 
     { 
      $this->validate(request(), ['body' => 'required|min:2']); 
      $post->addComment(request([ 
       'body' => request('body'), 
       'user_id' => auth()->user()])); 
     } 
    } 

Aber was ich bekomme ist

Type error: Too few arguments to function App\Posts::addComment(), 1 passed 2 expected.

Die addcoment Methode, aus dem Modell-Beiträge:

public function addComment($body, User $userid) 
{ 
    $this->comments()->create(compact('body', 'userid')); 

    return back(); 

} 

Nach diesem Tutorial https://laracasts.com/series/laravel-from-scratch-2017/episodes/19, aber der Lehrer übersprungen diesen Schritt.

+0

zeigen Sie Ihre Routing –

+0

Ich habe es zu der Post hinzugefügt. –

+0

Es scheint, dass Sie ein einzelnes Argument an die Funktion "addComment" übergeben, während zwei benötigt werden. 'Anfrage ([ 'body' => Anfrage ('body'), 'user_id' => auth() -> user()])' –

Antwort

1

Ihre Methode addComment($body, User $userid) benötigt 2 Argumente!

Sie sollten so etwas wie dies versuchen:

$post->addComment(request('body'),auth()->user()); 

OR (Ich bin für diese nicht sicher) Dieses unten wird nicht funktionieren.

$post->addComment(request(['body' => request('body')],auth()->user()); 
+0

Es ist behoben, aber die zweite Lösung, die ich bereits versucht hatte, funktioniert nicht, Danke für die Antwort. –

+0

Gern geschehen :) –

Verwandte Themen