【问题标题】:Creating a select component using Blade使用 Blade 创建选择组件
【发布时间】:2020-12-09 05:14:42
【问题描述】:

我正在使用 Laravel 7.x,想知道是否有一些我在文档中没有看到的内置 Blade 功能来简化创建 select HTML 标记的过程。

假设我的控制器操作如下所示:

public function index()
{      
  return view('cars.index', ['cars' => \App\Cars::all()]);
}

使用 HTML,我将使用以下假设示例手动呈现 select 输入:

<label for="cars">Choose a car:</label>

<select name="cars" id="cars">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>

假设cars 表有一个nameid 列(idvalue 的替代品,nameoption 的实际文本),是否有'Laravel ' 或 'Blade' 方式来渲染这个组件?我见过以前版本的 Laravel 使用某种 Form 模板标签。呈现此select 输入的现代方式是什么?

【问题讨论】:

    标签: php laravel laravel-blade


    【解决方案1】:

    如你所说,你可以使用Form。

    我会将模型值作为关联数组(id => 名称)返回:

    return view('cars.index', ['cars' => \App\Cars::all()->keyBy('id')->pluck('id', 'name')]);
    

    然后像这样生成一个Drop-Down:

    {{ Form::select('cars', $cars) }}
    

    编辑 1

    正如 lagbox 在 cmets 中指出的,您需要安装 laravelcollective/html 软件包。

    【讨论】:

    • 如果他们安装了laravelcollective/html,他们可以使用Form
    • 旁注:您可以在构建器上调用pluck 而不是集合\App\Cars::pluck('name', 'id')
    猜你喜欢
    • 1970-01-01
    • 2018-03-27
    • 1970-01-01
    • 2021-08-05
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-15
    相关资源
    最近更新 更多