Как установить выбранную опцию на основе поля базы данных в шаблоне блейда? - PullRequest
3 голосов
/ 06 июля 2019

В моем проекте laravel у меня есть форма редактирования, и я хочу установить выбранную опцию на основе поля базы данных.Как мне это сделать?

Я не могу использовать переменную $ info внутри части php на мой взгляд.Я думаю, что это из-за части контроллера.

Вот мой контроллер:

<?php 
public function Edit()
{
    $idNew = $_GET['id'];
    $info = DB::table('test')->select('id','name','status')->where('id','=', $idNew)->get();
    $returnHTML = view('layouts.edit',['info'=> $info])->render();

    return response()->json([
    'html'=> $returnHTML
    ]);
}
?>

И мой взгляд:

<html>
<option value="enabled"  <?php if($info['status'] == 'enabled'){ echo ' selected="selected"'; } ?>>enabled</option>
</html>

Ответы [ 2 ]

2 голосов
/ 06 июля 2019

Вам не хватает некоторых деталей.

  1. В контроллере laravel НЕ используйте массив $_GET.Использовать объект запроса
  2. В блейд-файле НЕ использовать тег php, используйте синтаксис блейдов
  3. Если вы хотите показать блейд-вид с контроллера, НЕ используйте функцию response()->json(), потому что она используетсядля вызовов ajax.
  4. НЕ используйте функцию get(), когда вам нужна одна запись.Используйте функцию first().

Ваш контроллер должен быть:

use Illuminate\Http\Request;

public function Edit(Request $request)
{
    $idNew = $request->input('id', 'default_value');
    $info = DB::table('test')->select('id','name','status')->where('id','=', $idNew)->first();

    return view('layouts.edit', ['info'=> $info]);
}

Ваш блейд-файл должен быть:

<html>
    <option value="enabled" {!! $info['status'] == 'enabled' ? "selected='selected'" : "" !!}>enabled</option>
</html>
0 голосов
/ 06 июля 2019

использовать массив данных и передать его с представлением

 public function Edit()
        {
        $data=array();
            $idNew = $_GET['id'];
            $data['info'] = DB::table('test')->select('id','name','status')->where('id','=', $idNew)->get();
             return view('layouts.edit')->with($data);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...