[英]Returning select option value when editing in laravel
我正在嘗試編輯課程。 現在有一個下拉選擇字段,您可以在其中選擇課程所屬的程序。 當我單擊編輯按鈕時,我希望能夠將程序返回到選擇字段。 現在,當我單擊編輯按鈕時,我收到Invalid argument supplied for foreach()
錯誤Invalid argument supplied for foreach()
的Invalid argument supplied for foreach()
。 我該如何解決這個問題並能夠將值放入選擇字段?
我的代碼:
刀片片段
{!! Form::open(['action'=>['CoursesController@update', $course->id], 'method'=>'POST']) !!}
<div class="form-group row justify-content-center">
{{Form::label('program_code', 'Program Code')}}
<div class="col-md-4">
{!! Form::select('program_code', $course->program_code, ['class'=>'form-control']) !!}
</div>
</div>
<div class="form-group row justify-content-center">
{{Form::label('course_code', 'Course Code')}}
<div class="col-md-4">
{{Form::text('course_code',$course->course_code,['class'=>'form-control', 'placeholder'=>'Course Code'])}}
</div>
</div>
<div class="form-group row justify-content-center">
{{Form::label('course_name', 'Course Name')}}
<div class="col-md-4">
{{Form::text('course_name',$course->course_name,['class'=>'form-control', 'placeholder'=>'Course Name'])}}
</div>
</div>
<div class="form-group row justify-content-center">
{{Form::hidden('_method', 'PUT')}}
{{Form::submit('Add Program', ['class'=>'btn btn-success'])}}
</div>
{!! Form::close() !!}
控制器
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Course;
use App\Program;
class CoursesController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$courses = Course::all();
return view('courses.index')->with('courses', $courses);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
// $programs = Program::all();
// return view('courses.create')->with('programs', $programs);
$programs = Program::all();
$select = [];
foreach($programs as $program){
$select[$program->program_code] = $program->program_name;
}
return view('courses.create', compact(['programs','select']));
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$this->validate($request, [
'program_code' => 'required',
'course_code' => 'required',
'course_name' => 'required'
]);
$course = new Course;
$course->program_code = $request->input('program_code');
$course->course_code = $request->input('course_code');
$course->course_name = $request->input('course_name');
$course->save();
return redirect('/home/courses')->with('success', 'Course Successfully addded!');
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
$course = Course::find($id);
return view('courses.edit')->with('course', $course);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$this->validate($request, [
'program_code' => 'required',
'course_code' => 'required',
'course_name' => 'required'
]);
$course = Course::find($id);
$course->program_code = $request->input('program_code');
$course->course_code = $request->input('course_code');
$course->course_name = $request->input('course_name');
$course->save();
return redirect('/home/courses')->with('success', 'Course Successfully updated!');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}
對於表單選擇方法參數序列是
您需要更改代碼
{!! Form::select('program_code', $course->program_code, ['class'=>'form-control']) !!}
到
{!! Form::select('program_code',["Option1","Option2","Option3",..], $course->program_code, ['class'=>'form-control']) !!}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.