如何传递多个参数(请求+ 2个其他参数)

时间:2019-08-30 13:20:23

标签: php laravel

我正在研究向客户发送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

您知道为什么我会收到此错误吗?

1 个答案:

答案 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>

谢谢