Reputation: 295
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
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
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