在 laravel 8 中的表单操作路由中传递用户请求

Posted

技术标签:

【中文标题】在 laravel 8 中的表单操作路由中传递用户请求【英文标题】:pass user request in form action route in laravel 8 【发布时间】:2021-06-30 18:43:49 【问题描述】:

这是我的简单表格

<form id="test-form" class="white-popup-block mfp-hide">
        <div class="popup_box ">
            <div class="popup_inner">
                <h3>Make an Appointment</h3>
                <form action="route('doctorwithdatepopup',['date'=>$date,'id'=>$doctorsid])" method="POST">
                    @csrf
                    <div class="row">
                        <div class="col-xl-6">
                            <input id="datepicker" placeholder="Pick date" name="date">
                        </div>
                        @php
                            $Department = DB::table('departments')->orderBy('id','desc')->get();
                        @endphp
                        <div class="col-xl-6">
                            <select class="form-select wide" id="departmentid" name="departmentid">
                                <option data-display="Select Department">Department</option>

                                @foreach ($Department as $item)
                                <option value="$item->id">$item->name</option>
                                @endforeach
                              
                                
                            </select>
                        </div>
                        <div class="col-xl-12">
                            <select class="form-select wide" id="doctorsid" name="doctorsid" class="">
                               
                            </select>
                        </div>
                        <br>    
                        <br>
                        <div class="col-xl-12">
                            <button type="submit" class="boxed-btn3">Search</button>
                        </div>
                    </div>
                </form>
            </div>
        </div>
    </form>

不作为['date'=&gt;$date,'id'=&gt;$doctorsid]这两个数据我想根据用户选择传递我该怎么做?

例如

$date = $request->date 

这个可以在控制器中处理,但在操作 URL 中我如何传递用户输入值?

【问题讨论】:

你是从哪里得到变量 $date 和 $doctorsid 的? 在表格的一侧有 2 个选择选项 您可以通过删除 url 参数并通过在控制器中执行所有操作直接使用请求来解决此问题 【参考方案1】:

有点棘手。尝试为此创建 2 条路线,第一条路线来获取用户表单请求。其次,您的“doctorwithdatepopup”路线。

web.php

Route::post('url', [YourController::class, 'store'])->name('storeform');
Route::get('url2/date/id', [YourController::class, 'show'])->name('doctorwithdatepopup');

YourController.php

public function store(Request $request)

    // Some Validation, Logic, etc
    return redirect()->route('doctorwithdatepopup', ['date' => $request->date, 'id' => $doctorId]);


public function show($date, $id)

    return view('your view', compact('date', 'id'));

【讨论】:

以上是关于在 laravel 8 中的表单操作路由中传递用户请求的主要内容,如果未能解决你的问题,请参考以下文章

提交表单时使用路由参数传递变量Laravel 5.2

laravel 表单生成错误的操作 url / 路由错误

将Javascript变量传递给laravel 5.3中的路由

Laravel 5.0 路由模型绑定在销毁操作中不起作用

如何在Laravel 5.2中将表单数据作为路由参数传递

如何通过应用程序中的表单为用户创建个人资料?我正在使用 laravel 8