2017-05-19 40 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!']; 
} 

我得到这个错误:传递给 应用程序\ HTTP \控制器我想通过变量从同一个控制器不同的功能 - Laravel

参数1 \ ChatsController ::的sendMessage()必须是照亮 实例\ HTTP \请求,整数给出,称为在 C:\ XAMPP \ htdocs中\ ScrimWithMe \应用\ HTTP \控制器\ ChatsController.php 上线77和限定

+1

'公共职能sendMessage(Request $ request,$ whatRelation)' 你传递的是第一个参数的整数,它应该是一个请求。 –

+0

嗯,你能解释一下,我需要改变我不明白... – Dpower

+0

你只传递单个参数$ this-> sendMessage($ whatRelation); – JYoThI

回答

3

你有所需sendMessage函数的两个参数..但你只是传递一个参数..

你可以做的是在你的chat功能聊天添加其他参数一样

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

然后添加一个参数在上述功能和应该做的吧..

0

@Demonyowh解释所有这就是为什么你得到这个错误

我认为这是factory design模式有两种方法可以解决您的概率LEM

  • 如果在任何其他地方不使用你的方法,然后取出第一个参数,它的下一行声明类

    METHOD(){ 
        $request = new Request(); 
        // your code; 
    } 
    
  • 声明此类参数在__construct方法
相关问题