如何使用 laravel 在变量中发送查询?

Posted

技术标签:

【中文标题】如何使用 laravel 在变量中发送查询?【英文标题】:How to send a query in a variable using laravel? 【发布时间】:2020-06-17 02:13:23 【问题描述】:

我有这个功能来注册我的用户

protected function validator(array $data)

    return Validator::make($data, [
        'name' => ['required', 'string', 'max:255'],
        'apellido' => ['required', 'string', 'max:255'],
        'idop' => ['required', 'string', 'max:6', 'unique:users'],
        'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
        'password' => ['required', 'string', 'min:8', 'confirmed'],
        'cedula' => ['required', 'int'],
        'fecha_nacimiento' => ['required', 'date'],
        'fecha_ingreso' => ['required', 'date'],
        'extension' => ['required', 'int'],
        'movil' => ['required', 'int'],
        'tel_hab' => ['required', 'int']
    ]);


我想将此查询发送到一个变量 ($generos) 中以进行选择

$generos = DB::table('tbl_lista_generos')
            ->select('id','genero')
            ->get();

我该怎么做?

【问题讨论】:

你会遇到什么错误? 我没有错误...我不知道如何将查询发送到视图以进行选择 【参考方案1】:

您可以使用以下方式将变量从controller 传递给view

方式1

$generos = DB::table('tbl_lista_generos')
            ->select('id','genero')
            ->get();
return view("index", compact("generos "));

方式2

 $generos = DB::table('tbl_lista_generos')
                ->select('id','genero')
                ->get();
 return view("index", ["generos" => $generos]);

Way3

 $generos = DB::table('tbl_lista_generos')
                ->select('id','genero')
                ->get();
 return view("index")->with(["generos" => $generos]);

在你的视图文件上::

 <select name="genero">
  <option value=''>select</option>
   @foreach ($generos as $genero)
     <option value=" $genero->id "> $genero->name</option>
   @enforeach
</select>

【讨论】:

谢谢!这适用于其他页面......但我需要在 laravel 中注册的路线视图的名称......你知道哪个是?而不是索引我应该放什么?我在 laravel 的注册视图中工作 你可以使用 view("register")->with(["generos" => $generos]); 我必须把这个函数放在哪里?在我的函数验证器中?或者我必须创建另一个函数来放置它 要将变量发送到的视图的名称是什么? 我正在研究 laravel 中注册的视图...所以我没有创建视图...视图在框架中【参考方案2】:

通过 cmets,您希望将查询结果发送到视图。所以,

在你的控制器函数中做:

return view('generos.index', [
      'generos' => DB::table('tbl_lista_generos')->select('id','genero')->get()
]);

在视图中:

<select class='' name='select_form_generos'>
<option value=''>select genero</option>
@foreach ($generos as $genero)
     <option value=' $genero->id '> $genero->genero</option>
@enforeach
</select>

希望对您有所帮助!

【讨论】:

我收到了一个错误......语法错误,文件意外结束,期待 elseif (T_ELSEIF) 或 else (T_ELSE) 或 endif (T_ENDIF) (查看:C:\laragon\www\bduproject\resources\views\auth\register.blade.php 我为“@endforeach”修改了“@enforeach”.. 因为但什么都没有

以上是关于如何使用 laravel 在变量中发送查询?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 laravel 查询生成器中使隐藏属性可见?

如何使 Laravel Eloquent “IN” 查询?

如何访问我在 Laravel 4 中手动发送的请求的查询字符串参数?

如何使laravel中的动态表单字段可填写

如何使MySQL前后端连接SESSION变量保持一致

如何从Angular向同一域上的Laravel API发送请求?