Zubair
Zubair

Reputation: 295

Send Message to selected user using laravel

I am trying to send message to selected user unfortunately I am facing error how to fix it ? thanks.

please check error https://flareapp.io/share/67OAAVmr#F59

controller

                public function chataction(REQUEST $request)
                {   
                $user = Auth::user();
                $m = $user->Chats()->create([             
               'chat_message' => $request->input('message'),
               'from_user_id' =>Auth::user()->id,
               'to_user_id' =>$request->input('id'),
               ]);          
               return ['status' => 'Message Sent!'];
                }

html view

          <form action="{{route('chat.action')}}" method="post">
          @csrf
          <input type="hidden" name="id" >
          <div class="input-group">
          <input type="text" id="chatmessage" name="message" placeholder="Type Message ..." 
          class="form-control">
          <span class="input-group-append">
          <button type="submit" name="btnsubmit" id="btnsubmit"  class="btn btn- 
          primary">Send</button>
          </span>
          </div>
          </form>

Upvotes: 0

Views: 882

Answers (2)

Qumber
Qumber

Reputation: 14559

1 - Modify your App\Chat model so $fillable looks like this:

protected $fillable = ['chat_message', 'from_user_id', 'to_user_id'];

2 - Modify your controller to use Illuminate\Http\Request and change your method argument's capitalisation from REQUEST to Request.

use Illuminate\Http\Request;

public function chataction(Request $request)
{
     ...
}




To answer your question in comments,

This is what your method should look like this:

use Illuminate\Http\Request;

public function chataction(Request $request)
{   
 $user = Auth::user();

 if($request->id == $user->id){
     return response("Can't message yourself!");
 }

 $m = $user->Chats()->create([             
      'chat_message' => $request->input('message'),
      'from_user_id' => $user->id,
      'to_user_id' => $request->input('id'),
      ]);     

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

Note: Please update your question to include your query regarding comparison between from_user_id and to_user_id for the benefit of future visitors.

Upvotes: 1

VIKAS KATARIYA
VIKAS KATARIYA

Reputation: 6005

Change your REQUEST

use Illuminate\Http\Request;

public function chataction(Request $request)
   {   
     $user = Auth::user();
     $m = $user->Chats()->create([             
          'chat_message' => $request->input('message'),
          'from_user_id' => Auth::user()->id,
          'to_user_id' => $request->input('id'),
          ]);          
         return ['status' => 'Message Sent!'];
   }

Change In your Model

use fillable when you are use create method to insert data

protected $fillable = ['chat_message', 'from_user_id', 'to_user_id'];

Upvotes: 2

Related Questions