我正在研究向客户发送SMS消息的项目。
我试图雄辩地在数据库中创建新行,并在函数中传递3个参数。
TraitementController.php
public function send_sms_reply(Request $request, Client $client, $id)
{
$validatedData = $request->validate ([
'expediteur' => 'Reponse',
'texte' => 'required|string',
'type' => 2,
'conversation_id' => 'required|numeric',
'client_id' => $client->id,
'user_id' => 'required|numeric',
'statut' => 0,
]);
$sms_cree = Sms::create($validatedData);
[...]
}
web.php
Route::post('envoyer/sms', 'TraitementController@send_sms_reply')->name('traitements.send_sms_reply');
<form method="post" action="{{ route('traitements.send_sms_reply', $conversation->client, Auth::user()->id) }}">
@csrf
@method('POST')
<select class="form-control" style="margin-bottom: 5px">
<option value="">Choix modèle de réponse</option>
</select>
<textarea class="form-control" name="text" required>GRDF Bonjour</textarea>
<input id="conversation_id" name="conversation_id" type="text" value="{{ $conversation->id }}" style="display:none">
<input id="user_id" name="user_id" type="text" value="{{ Auth::user()->id }}" style="display:none">
<i>Retour pas encore traité</i>
<br><br>
<button type="submit" class="btn btn-primary">Répondre</button>
</form>
当我单击“提交”按钮时,我终于收到此错误。
Too few arguments to function App\Http\Controllers\TraitementController::send_sms_reply(), 2 passed and exactly 3 expected
您知道为什么我会收到此错误吗?
答案 0 :(得分:2)
按如下所示更改路线,以使其接受send_sms_reply
函数所需的参数
Route::post('envoyer/sms/{client}/{id}', 'TraitementController@send_sms_reply')->name('traitements.send_sms_reply');
要传递多个参数以进行路由,您可以在表单中执行以下操作
<form method="post" action="{{ route('traitements.send_sms_reply', ['client' => $conversation->client, 'id' => Auth::user()->id)] }}">
@csrf
/* Your code */
</form>
谢谢