Laravel select2 在 blade 文件上设置所选选项
Laravel select2 set selected option on blade file
Laravel 8
我正在创建一个 laravel 8 网络应用程序。因此我使用 select2 来创建 multiselect select 字段。使用 select 框来选择值并将它们存储在数据库中就像一个魅力。现在我想创建编辑字段,其中应显示 selected 值。
<option value="123" selected>123</option>
在 blade 文件中不起作用。
你能给我推荐一个使用默认 laravel blade 逻辑的解决方案吗(@foreach,@if,...)
如果这不起作用,那么我需要更多帮助。
谢谢
有很多方法可以做到这一点
让我们从最简单的开始
我假设我们有公司的数组
$companies = ['google', 'facebook', 'amazon'];
$selectedCompany = 1;
1- 你可以 select 等效键
<option value="{{$key}}" {{ ($key === $selectedCompany) ? 'selected' : '' }}>{{$value}}</option>
2-您可以使用组件来构建选项组件
https://laravel.com/docs/8.x/blade#components
来自 CLI 运行
php artisan make:component Forms/Select/Option
laravel 将创建两个文件,一个用于视图代码,另一个用于逻辑
resources/views/components/forms/select/option.blade.php
app/View/Components/Forms/Select/Option.php
创建三个属性 $key、$value 和 $selectedKey
<?php
namespace App\View\Components\Forms\Select;
use Illuminate\View\Component;
class Option extends Component
{
public $value;
public $key;
public $selectedKey;
/**
* Create a new component instance.
*
* @return void
*/
public function __construct($key, $value, $selectedKey)
{
$this->key = $key;
$this->value = $value;
$this->selectedKey = $selectedKey;
}
/**
* Get the view / contents that represent the component.
*
* @return \Illuminate\Contracts\View\View|\Closure|string
*/
public function render()
{
return view('components.forms.select.option');
}
}
和option.blade.php
内容
<option value="{{$key}}" {{ $key === $selectedKey ? 'selected' : '' }}>{{$value}}</option>
现在您可以在任何地方调用此组件并向其传递属性
<x-forms.select.option :value="$value" :key="$key" :selectedKey="$selectedCompany"> </x-forms.select.option>
3- 你可以使用 laravelcollective/html
包
https://laravelcollective.com/docs/6.x/html#drop-down-lists
形成 CLI 运行
composer require laravelcollective/html
现在您可以在任何 blade 视图文件中使用 Form::select
{{ Form::select('company_id', $companies, $selectedCompany) }}
希望对您有所帮助
Laravel 8 我正在创建一个 laravel 8 网络应用程序。因此我使用 select2 来创建 multiselect select 字段。使用 select 框来选择值并将它们存储在数据库中就像一个魅力。现在我想创建编辑字段,其中应显示 selected 值。
<option value="123" selected>123</option>
在 blade 文件中不起作用。 你能给我推荐一个使用默认 laravel blade 逻辑的解决方案吗(@foreach,@if,...) 如果这不起作用,那么我需要更多帮助。
谢谢
有很多方法可以做到这一点 让我们从最简单的开始 我假设我们有公司的数组
$companies = ['google', 'facebook', 'amazon'];
$selectedCompany = 1;
1- 你可以 select 等效键
<option value="{{$key}}" {{ ($key === $selectedCompany) ? 'selected' : '' }}>{{$value}}</option>
2-您可以使用组件来构建选项组件 https://laravel.com/docs/8.x/blade#components
来自 CLI 运行
php artisan make:component Forms/Select/Option
laravel 将创建两个文件,一个用于视图代码,另一个用于逻辑
resources/views/components/forms/select/option.blade.php
app/View/Components/Forms/Select/Option.php
创建三个属性 $key、$value 和 $selectedKey
<?php
namespace App\View\Components\Forms\Select;
use Illuminate\View\Component;
class Option extends Component
{
public $value;
public $key;
public $selectedKey;
/**
* Create a new component instance.
*
* @return void
*/
public function __construct($key, $value, $selectedKey)
{
$this->key = $key;
$this->value = $value;
$this->selectedKey = $selectedKey;
}
/**
* Get the view / contents that represent the component.
*
* @return \Illuminate\Contracts\View\View|\Closure|string
*/
public function render()
{
return view('components.forms.select.option');
}
}
和option.blade.php
内容
<option value="{{$key}}" {{ $key === $selectedKey ? 'selected' : '' }}>{{$value}}</option>
现在您可以在任何地方调用此组件并向其传递属性
<x-forms.select.option :value="$value" :key="$key" :selectedKey="$selectedCompany"> </x-forms.select.option>
3- 你可以使用 laravelcollective/html
包
https://laravelcollective.com/docs/6.x/html#drop-down-lists
形成 CLI 运行
composer require laravelcollective/html
现在您可以在任何 blade 视图文件中使用 Form::select
{{ Form::select('company_id', $companies, $selectedCompany) }}
希望对您有所帮助