将数据库中的数据检索到“选择”和“复选框”字段中,以便在Laravel中进行编辑

时间:2019-06-19 17:21:49

标签: php laravel select checkbox crud

我正在尝试对主题资源进行CRUD操作。我已经创建了资源控制器,并正确地管理了索引,创建,存储和显示函数。这是我第一次与Laravel合作进行CRUD。在我的表单中,我使用的是select和复选框组字段。 这是themeEdit刀片视图

@extends('layouts.layout')

@section('content')
    <form method="PUT">
        @csrf
        <!-- Intitulé du thème -->
        <input type="text" name="intitule" id="intitule" placeholder="Intitulé du thème" value=" {{$theme->intitule}} " required><br>
        <!-- Catégorie -->
        <select name="categorie" required>
            <option value="">-- Catégorie --</option>
            <option value="web">Développement web</option>
            <option value="appMobile">Programmation application mobile</option>
            <option value="secure">Sécurisation</option>
            <option value="other">Autre</option>
        </select> <br>
        <!-- Filière désirée -->
        <input type="checkbox" name="filiere[]" id="GL" value=" {{$theme->filiereDesiree}} " required>
        <label for="GL">Génie Logiciel</label><br>
        <input type="checkbox" name="filiere[]" id="SI" value=" {{$theme->filiereDesiree}} " required>
        <label for="SI">Sécurité Informatique</label><br>
        <input type="checkbox" name="filiere[]" id="IM" value=" {{$theme->filiereDesiree}} " required>
        <label for="IM">Internet et Multimédia</label><br>
        <input type="checkbox" name="filiere[]" id="SIRI" value=" {{$theme->filiereDesiree}} " required>
        <label for="SIRI">Systèmes d'Information et Réseaux Informatiques</label><br>
        <!-- Descriptif -->
        <textarea name="description" id="description" placeholder="Description de la thématique" required> {{$theme->description}} </textarea><br>

        <input type="submit" name="submit" id="submit" value="Ajouter">
        <span id="error-message" class="text-danger"></span>
        <span id="success-message" class="text-success"></span>
    </form>

@endsection

我正在通过编辑功能中的Controller将数据传递给视图

/**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        $theme = Theme::findOrFail($id);
        return view('themeEdit', ['theme' => $theme]);
    }

我尝试了您在上面的视图代码中看到的内容,以查看是否可以根据数据库中的数据选中或取消选中复选框。它没有达到预期的效果。

<!-- Filière désirée -->
        <input type="checkbox" name="filiere[]" id="GL" value=" {{$theme->filiereDesiree}} " required>
        <label for="GL">Génie Logiciel</label><br>
        <input type="checkbox" name="filiere[]" id="SI" value=" {{$theme->filiereDesiree}} " required>
        <label for="SI">Sécurité Informatique</label><br>
        <input type="checkbox" name="filiere[]" id="IM" value=" {{$theme->filiereDesiree}} " required>
        <label for="IM">Internet et Multimédia</label><br>
        <input type="checkbox" name="filiere[]" id="SIRI" value=" {{$theme->filiereDesiree}} " required>
        <label for="SIRI">Systèmes d'Information et Réseaux Informatiques</label><br>

如果有用的话,这就是我通过存储控制器功能将数据存储在数据库中的方式

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $theme = new Theme;
        $theme->intitule = $request->input('intitule');
        $theme->description = $request->input('description');
        $theme->categorie = $request->input('categorie');
        $request->merge([
            'filiere' => implode(',', (array) $request->get('filiere'))
        ]);
        $theme->filiereDesiree = $request->input('filiere');
        $theme->save();
        echo "Enregistré";
    }

我想知道的是如何从数据库中获取选定或检查的数据,然后在视图的相应字段中正确检索它们。

1 个答案:

答案 0 :(得分:0)

对于那些可能处于相同情况的人。我找到了解决方法here