2017-05-19 4 views
0
public function chat($id,$team1,$team2){ 

    $relation=Crelation::where('match_id',$id)->where('first_team_id',$team1)->where('second_team_id',$team2)->first(); 

    if($relation == null){ 

     $data=[ 
      'match_id'=>$id, 
      'first_team_id'=>$team1, 
      'second_team_id'=>$team2 
     ]; 

     $rel= Crelation::create($data); 
     $whatRelation=$rel->id; 
     $this->sendMessage($whatRelation); 

    }else{ 

    $whatRelation=$relation->id; 
     $this->sendMessage($whatRelation); 
    } 

    return view('chat',compact('whatRelation')); 
} 


public function sendMessage(Request $request,$whatRelation) 
{ 

    $id=(int)$whatRelation; 

$user = Auth::user(); 

$message = $user->messages()->create([ 
    'message' => $request->input('message'), 
    'crelation_id'=>$id 


]); 

broadcast(new MessageSent($user, $message))->toOthers(); 

return ['status' => 'Message Sent!']; 
} 

ich diesen Fehler:Ich möchte aus demselben Controller in verschiedenen Funktionsvariablen passieren - Laravel

Argument 1 bestanden App \ Http \ Controllers \ ChatsController :: nachrichts() muss ein Instanz von Illuminate \ Http \ anfordern, integer gegeben, in c: \ xampp \ htdocs \ ScrimWithMe \ app \ Http \ \ Controllers ChatsController.php auf der Leitung 77 und definiert

+1

'public function sendMessage (Request $ request, $ whatRelation) ' Sie übergeben Integer für den ersten Parameter, es sollte eine Anfrage sein. –

+0

Hmm können Sie etwas mehr erklären, was ich ändern muss, verstehe ich nicht ... – Dpower

+0

Ihr passendes einzelnes Argument nur $ this-> sendMessage ($ whatRelation); – JYoThI

Antwort

3

Sie haben zwei Parameter für die Funktion sendMessage benötigt .. aber du bist vorbei nur einen Parameter ..

, was Sie tun können, ist wie

public function chat(Request $request, $id,$team1,$team2){ 
    .... 
    $this->sendMessage($request,$whatRelation); 
} 

einen anderen Parameter in Ihrer chat Funktion Chat fügen Sie dann einen Parameter hinzufügen in der Funktion und das sollte es tun ..

0

@Demonyowh alle erklären, warum Sie diesen Fehler

ich denke, es ist factory design Muster gibt es zwei Möglichkeiten, um Ihre prob zu lösen lem

  • Wenn Ihre Methode nicht auf jedem anderen Ort verwendet dann erste Parameter entfernen und erklären, Klasse auf der nächsten Zeile

    METHOD(){ 
        $request = new Request(); 
        // your code; 
    } 
    
  • Declare diese Klasse Parameter in Ihrer __construct Methode
Verwandte Themen