我需要從兩個不同的控制器傳遞兩個變數到一個視圖,并顯示不同的值從陣列變數到兩個不同的html表單的選擇選項在Laravel 8。但是Laravel似乎不允許將兩個不同的變數傳遞到一個視圖中。
我應該如何解決這個問題?
<涉及的控制器。TimeController, CourseController
時間控制器:
<?php
namespace AppHttpControllers。
使用 AppModelsTime。
使用 IlluminateHttpRequest。
使用 Illuminate支持FacadesDB。
class TimeController extends Controller
{
public function loadTime()
{
$timeData = DB::table('time')-> select('*')-> get();
return view('admin.forms.enrollment', ['timeList' => $timeData] )。)
}
CourseController:
<?php
namespace AppHttpControllers。
使用 IlluminateHttpRequest。
使用 IlluminateSupportFacadesDB。
class CourseController extends Controller
{
public function loadCourses()
{
$courseData = DB::table('courses')-> select('*')-> get();
return view('admin.forms.enrollment', ['courseList' => $courseData] )。)
//$timeData = DB::table('time')->select('*')-> get();
// return view('admin.forms.enrollment', ['timeList' => $timeData]);
}
}
路線:
Route::get('/enroll', [TimeController::class, 'loadTime'])-> name('loadTime') 。
Route::get('/enroll', [CourseController::class, 'loadCourses'])->name('loadCourses') 。
查看:
@extends('admin.form.layout')
@section('form')
<div class="form-group row" >
<div class="col-sm-4">
<label for="lastname" class="col-sm- 6 col-form-label" > 用戶名</標簽>
<div class="col-sm-10">。
<input type="text" class="form-control" id="uname" placeholder="eg. Khatri0b3d020d">
</div>
</div>
<div class="col-sm-4">
<label for="course" class="col-sm- 6 col-form-label" > 課程</label>
<div class="col-sm-10">
<select name="course" id="course" class="form-control" >
@foreach($courseList as$course)
<option value="{$course-> vehicle_category}}">{{$course-> course_type}}</option>
</select>
</div>
</div>
</div>
<div class="form-group row">
<div class="col-sm-4">
<label for="email" class="col-sm-6 col-form-label"> Package</label>
<div class="col-sm-10">
<input type="email" class="form-control" id="email" placeholder="eg. [email protected]" >
</div>
</div>
<div class="col-sm-4">
<label for="phone" class="col-sm-6 col-form-label" value=" 977" > 開始日期</label>
<div class="col-sm-10">
< input type="date" class="form-control" id="date" min="{{date('Y-m-d')}}">
</div>
</div>
</div>
<div class="form-group row">
<div class="col-sm-4">
<label for="time" class="col-sm-6 col-form-label"> Preferred Time</label>
<div class="col-sm-10">
<select name="time" id="time" class="form-control">
<option selected default>選擇你喜歡的時間</option>。
@foreach($timeList as $time)
<選項值="{{$time->id}}">{{$time->time}}</option>
@endforeach
</select>
</div>
</div>
</div>
<div class="form-group row">
<div class="col-sm-4">
<input type="submit" value="Admit" name="admit" class="btn btn-success" >
</div>
</div>
@endsection
uj5u.com熱心網友回復:
所以根據你的評論,我理解你的問題。你不需要兩個控制器和獨立的路由。
創建一個新的控制器,名稱為StudentEnrollmentController,運行
php artisan make:controller StudentEnrollmentController并將以下代碼粘貼到控制器中
<?php
namespace AppHttpControllers。
使用 AppModelsTime。
使用 IlluminateHttpRequest。
使用 Illuminate支持FacadesDB。
class StudentEnrollmentController extends Controller
{
public function showEnrollmentForm(/span>)
{
$timeData = DB::table('time')-> get();
$courseData = DB::table(' courses')->get();
return view('admin.forms.enrollment', compact('timeData', 'courseData')) 。
}
}
在routes/web.php
Route::get('/enrollmentForm'/span>, [AppHttpControllersAppHttpControllers: :class, 'showEnrollmentForm'])->name(' enrollmentForm')。
現在訪問URL enrollmentForm,它將顯示該表單而不會出現錯誤。
uj5u.com熱心網友回復:
你需要為$timeList和$courseList添加檢查
@if(isset($timeList)
... //$timeList的代碼
@endif
@if(isset($courseList)
... //$courseList的代碼。
@endif
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/321605.html
標籤:
上一篇:制作一個函式來檢查用戶是否存在
下一篇:如何解決這個錯誤?錯誤:找不到符號Vholder.setData(mValues.get(position))。
