簡體   English   中英

在laravel中編輯時返回選擇選項值

[英]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)
    {
        //
    }
}

對於表單選擇方法參數序列是

  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']) !!}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM