在拉拉维尔中编辑时返回选择选项值



我正在尝试编辑课程。现在有一个下拉选择字段,您可以在其中选择课程所属的程序。我希望能够在单击编辑按钮时将程序返回到选择字段。现在,当我单击编辑按钮时,我收到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 AppHttpControllers;
use IlluminateHttpRequest;
use AppCourse;
use AppProgram;
class CoursesController extends Controller
{
/**
* Display a listing of the resource.
*
* @return IlluminateHttpResponse
*/
public function index()
{
$courses = Course::all();
return view('courses.index')->with('courses', $courses);
}
/**
* Show the form for creating a new resource.
*
* @return IlluminateHttpResponse
*/
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  IlluminateHttpRequest  $request
* @return IlluminateHttpResponse
*/
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 IlluminateHttpResponse
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param  int  $id
* @return IlluminateHttpResponse
*/
public function edit($id)
{
$course = Course::find($id);
return view('courses.edit')->with('course', $course);
}
/**
* Update the specified resource in storage.
*
* @param  IlluminateHttpRequest  $request
* @param  int  $id
* @return IlluminateHttpResponse
*/
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 IlluminateHttpResponse
*/
public function destroy($id)
{
//
}
}

对于表单,选择方法参数序列为

  1. 名字
  2. 项目列表
  3. 默认选择值
  4. 额外参数

您需要将代码从

{!! Form::select('program_code', $course->program_code, ['class'=>'form-control']) !!}

{!! Form::select('program_code',["Option1","Option2","Option3",..], $course->program_code, ['class'=>'form-control']) !!}

最新更新