laravel-blade 相关问题

Blade是Laravel提供的简单而强大的模板引擎。与其他流行的PHP模板引擎不同,Blade不会限制您在视图中使用纯PHP代码。

Laravel Blade 模板中的 Vue.js v-for 循环

使用 v-for 时我无法绑定索引和值...但是当我 echo 数组时它可以工作... 刀片文件内容:

回答 0 投票 0

路由角色不支持 PATCH 方法。支持的方法:GET、HEAD、POST

我想使用 spatie laravel 授予角色权限。我无法编辑我的角色,因为错误: 路由角色不支持 PATCH 方法。支持的方法:GET、HEAD、POST。 我的代码: 控制...

回答 1 投票 0

使用 Laravel / Blade 中的旧输入定义所选选项

我有这个代码: @foreach($titles 作为 $key => $val) @if (stristr($key, 'isGro... 我有这个代码: <select required="required" class="form-control" name="title"> <option></option> @foreach ($titles as $key => $val) @if (stristr($key, 'isGroup')) <optgroup label="{{ $val }}"> @else <option value="{{ $key }}">{{ $val }}</option> @endif @endforeach </select> 因此,当表格有错误时,我使用Redirect::route('xpto')->withInput()->withErrors($v)行。但我无法重新填充选择字段。有什么方法可以在不使用 JavaScript 的情况下做到这一点吗? 此外,您还可以使用 ? 运算符来避免使用 @if @else @endif 语法。变化: @if (Input::old('title') == $key) <option value="{{ $key }}" selected>{{ $val }}</option> @else <option value="{{ $key }}">{{ $val }}</option> @endif 简单地: <option value="{{ $key }}" {{ (Input::old("title") == $key ? "selected":"") }}>{{ $val }}</option> 除了使用 Input 类,您还可以使用 old() 帮助器来使其更短。 <option {{ old('name') == $key ? "selected" : "" }} value="{{ $value }}"> 解决方案是使用 Blade Directives - If statements 将 Input::old() 与 $key变量进行比较。 @if (Input::old('title') == $key) <option value="{{ $key }}" selected>{{ $val }}</option> @else <option value="{{ $key }}">{{ $val }}</option> @endif 在向您展示的所有方法中,如果您的项目是在 Laravel 9 以上的版本中制作的,我不建议使用它们。 使用这个,因为 laravel 本身已经添加了这个 选中/选择/禁用 <select name="version"> @foreach ($product->versions as $version) <option value="{{ $version }}" @selected(old('version') == $version)> {{ $version }} </option> @endforeach </select> <select name="gender" class="form-control" id="gender"> <option value="">Select Gender</option> <option value="M" @if (old('gender') == "M") {{ 'selected' }} @endif>Male</option> <option value="F" @if (old('gender') == "F") {{ 'selected' }} @endif>Female</option> </select> 经过一番尝试后,我想出了这个,它看起来效果非常好 <select name="options[]" id="options" class="form-control" multiple> @foreach($settings->includes->get('optionList') as $option) <option value="{{ $option->id }}" {{ (collect(old('options'))->contains($option->id)) ? 'selected':'' }}>{{ $option->name }}</option> @endforeach </select> 我在利用收集功能时可能是 100% 错误,但它在我的许多测试中运行良好。在看到网站上的其他一些帖子后,我看到有人建议利用 in_array($needle, $array) 函数,但在注意到如果我的 old('options') 为 null 时,它会出错,因为它需要 in_array 要求,我敢打赌猜出一个数组。因此,在找到这个尽管丑陋的解决方案的解决方案后,我使用了收集方法,因为毕竟我们正在使用幼虫!无论如何,丑陋的解决方案如下 @if (old("options")){{ (in_array($option->id, old("options")) ? "selected":"") }}@endif 内联但对我来说看起来很丑的人所以长话短说我正在使用以下内容 {{ (collect(old('options'))->contains($option->id)) ? 'selected':'' }} 希望这对其他人有帮助! 这似乎不适用于非多重选择字段,但我会用一个适用于该字段的字段返回。 我已更改代码以在标题值中包含 '',因为没有引号它无法工作 <select class="form-control" name="team" id="team"> <option value="">---------Choose Team---------</option> @foreach($teams as $team) <option value="{{$team->id}}" {{(old('team')==$team->id)? 'selected':''}}>{{$team->name}}</option> @endforeach </select> eg.<select name="title"> <option value="1" {{ old('title') == '1' ? 'selected' : '' }}> Item 1 </option> <option value="2" {{ old('title') == '2' ? 'selected' : '' }}> Item 2 </option> </select> Laravel 6 或更高版本: 只需使用 old() 函数即可 @if (old('cat')==$cat->id),它将为您完成其余的工作。 其工作原理:选择标签将所选选项值存储到其名称属性中,在下面的情况下,如果您选择任何选项,它将存储到cat中。第一次加载页面时,cat 内没有任何内容,当用户选择一个选项时,所选选项的值将存储到 cat 中,因此当用户重定向时,old()函数从 cat 中提取先前的值。 {!!Form::open(['action'=>'CategoryController@storecat', 'method'=>'POST']) !!} <div class="form-group"> <select name="cat" id="cat" class="form-control input-lg"> <option value="">Select App</option> @foreach ($cats as $cat) @if (old('cat')==$cat->id) <option value={{$cat->id}} selected>{{ $cat->title }}</option> @else <option value={{$cat->id}} >{{ $cat->title }}</option> @endif @endforeach </select> </div> <div class="from-group"> {{Form::label('name','Category name:')}} {{Form::text('name','',['class'=>'form-control', 'placeholder'=>'Category name'])}} </div> <br> {!!Form::submit('Submit', ['class'=>'btn btn-primary'])!!} {!!Form::close()!!} <option value="{{ $key }}" {{ Input::old('title') == $key ? 'selected="selected"' : '' }}>{{ $val }}</option> <select class="form-control" name="kategori_id"> <option value="">-- PILIH --</option> @foreach($kategori as $id => $nama) @if(old('kategori_id', $produk->kategori_id) == $id ) <option value="{{ $id }}" selected>{{ $nama }}</option> @else <option value="{{ $id }}">{{ $nama }}</option> @endif @endforeach </select> 这会对你有帮助,如果存在就与旧的比较,如果不存在则与默认值比较 <select name="select_name"> @foreach($options as $key => $text) <option {{ ($key == old('select_name',$default))?'selected':'' }}> {{ $text }} </option> @endforeach </select> $default是从控制器注入到视图的值 Laravel 8.59.0 的简短而干净的使用示例(旧版本的预选编辑表单) 您可以将其用于您的编辑页面。它带有数据库中的默认选择,如果您提交未通过验证表单,则会通过包含 old 来返回答案。 <select name="brand_id"> @foreach ($brands as $brand) <option value="{{ $brand->id }}" @if ($product->brand_id === $brand->id || old('brand_id') === $brand->id) selected @endif>{{ $brand->title }}</option> @endforeach </select> 我的解决方案是循环,只是为了避免重复选项 <select class="form-control" name="status" > <?php $lists = ['Current', 'Win', 'Lose']; ?> @foreach($lists as $list) <option value={{$list}} {{(old('status') == $list?'selected':'')}} >{{$list}}</option> @endforeach </select> 好吧,我的 2 美分,使用 Laravel 的 old() 函数的默认值。 <select name="type"> @foreach($options as $key => $text) <option @if((int) old('type', $selectedOption) === $key) selected @endif value="{{ $key }}">{{ $text }}</option> @endforeach </select> <select style="width: 100%;" name="id_driver" id="id_driver" > <option value="" @if (old('id_driver') == "") selected @endif>Select</option> @foreach(\App\Driver::all() as $driver) <option value="{{$driver->id}}" @if (old('id_driver') == $driver->id) selected @endif >(#{{$driver->id}}) {{$driver->business_name}} </option> @endforeach </select> 许多答案都展示了使用三元运算符的一个衬垫,但我认为使用 @if 更具可读性,至少对于初学者来说是这样。如果没有 else 语句,以下内容就足够了。 <option value="{{ $key }}" @if(old('title')===$key) selected @endif>{{ $val }}</option> 从 Laravel 9 开始,我遵循的方法是 如果选项在视图中被硬编码: <option value="male" {{old('gender', $customer['gender']) === 'male' ? "selected" : ''}}> Male </option> 如果选项从控制器作为数组传递下来: @foreach ($genders as $gender) <option value="{{$gender}}" {{ old('gender', $customer['gender']) === $gender ? "selected='selected'" : '' }}> {{ucwords($gender)}} </option> @endforeach PS:冒昧考虑一下客户模型和性别属性的例子。 对于 Laravel 9,您可以使用这个作为示例。我认为这个有效。 <select name="version_id" class="form-control custom-select"> <option value="">Select Version</option> @foreach($versions as $version) <option value="{{ $version->id }}" {{ old('version_id', $apps->version_id) == $version->id ? 'selected' : null}}>{{ $version->name }}</option> @endforeach </select> 如果您想要编辑数据,这对于 Laravel 中的下拉菜单可能很有用,但是当您单击编辑时,会选择旧数据而不是不选择任何数据。 <select> @if(old('value') =={{$key}}) <option value="value" selected>{{$value}}</option> @else <option value="value">{{$value}}</option> @endif </select> 考虑到用户还想编辑他们之前的输入, <select name="title"> @foreach ($titles as $key => $value) <option value="{{$value->id}}" {{(old('title', $user->title_id) == $value->id ? 'selected' : '')}} > {{$value->name}} </option> @endforeach </select> old('title', $user->title_id) 返回用户第一次保存的title_id,如果验证失败则返回用户选择的title_id。然后如果它与当前选项 id 匹配,则它被选中。 通过错误验证实现改进 CodeToLife 的答案,如下所示 <div class="form-group row"> <label for="person-field" class="col-md-4 col-form-label text-right">First Person</label> <div class="col-md-6"> <select id="person-field" class="custom-select select2 @error('person') is-invalid @enderror" name="person" required> <option></option> @foreach(\App\User::all() as $user) <option value="{{$user->id}}" @if (old('person') == $user->id) selected @endif>{{$user->name}} </option> @endforeach </select> @error('person') <span class="invalid-feedback" role="alert"> <strong>{{ $message }}</strong> </span> @enderror </div> </div> 打字较多,但非常清晰。我在课堂上使用它来演示它是如何工作的。不建议用于生产。 @if (old('typeid')) @if ($type->id == old('typeid')) <option value="{{ $type->id }}" selected> @else <option value="{{ $type->id }}"> @endif @else @if ($type->id == $event->typeid) <option value="{{ $type->id }}" selected> @else <option value="{{ $type->id }}"> @endif @endif

回答 0 投票 0

AlpineJs/Laravel - 如何获取标签的值并将其传递给控制器

我是使用 Alpine JS 和 Laravel 的新手。我想获取 :value 的值并将其传递给控制器,以便我可以用它进行查询。是否可以异步查询和显示数据...

回答 1 投票 0

在foreachblade.php中显示图像

所以,我正在尝试显示图像,这是我创建数据的方式 公共函数create_supplier(供应商$请求) { $validatedData = $request->validated(); $扩展名=$请求...

回答 1 投票 0

Laravel 通过调用路由名称来扩展刀片页面

我正在开发我的 laravel 项目 我有一个布局页面,但没有访问它的路线。因为它是用来扩展刀片页面的。 @extends('admin.adminlayout'). 我担心的是,我想使用

回答 1 投票 0

Laravel Blade 变量范围

扩展时,我在 Laravel Blade 中遇到可变范围问题 home.blade.php(由控制器使用): @extends('templates.BaseBlade') @section('头') 扩展时,我在 Laravel Blade 中遇到可变范围问题 home.blade.php(由控制器使用): @extends('templates.BaseBlade') @section('head') <?php echo $testvar; ?> BaseBlade.blade.php: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html> <head> <meta name="csrf-token" content="{{ csrf_token() }}"> <?php $testvar = "this is a test"; ?> 我以为 BaseBlade 会被编译,然后 $testvar 应该可以被家庭刀片访问,但这似乎不会按这个顺序发生 所以在 laravel Blade 模板中,变量的作用域是从父级传递给子级的。 刀锋模板的传承 因此,如果您首先像这样返回视图: return view('template-1')->with([ 'var1' => 'Test One', 'var2' -> 'Test Two', ]); 在刀片模板中,您可以使用 {{ }} 语法回显这些内容: {{ $var1 }} # Test One {{ $var2 }} # Test Two 现在假设您正在使用 @include,您将在范围内同时获得 var1 和 var2 并能够覆盖它们并为您分配新变量,如下所示: @include('_includes.include-1', ['var2' => 'Foo', 'var3' -> 'Bar']) {{ $var1 }} # Test One {{ $var2 }} # Foo {{ $var3 }} # Bar 现在,如果您想让一个变量可用于扩展给定模板的所有刀片模板(即,如果“template-1”扩展app)。您可以像这样在 ServiceProvider 中绑定全局变量; 刀片服务提供商 View::share('var4', 'Foo-Bar']); 现在您可以在所有模板中访问var4 {{ $var1 }} # Test One {{ $var2 }} # Test Two {{ $var4 }} # Foo-Bar 以上答案内容丰富,因此被选为接受的答案。 然而,我找到了一个简单的解决方案,将其放在 /routes/web.php 的顶部,以便可以访问基本视图(无需控制器) 所有刀片都有范围 \View::share([ "myvariable1"=>"myValue1", "myvariable2"=>"myValue2"; ]); 如果我理解问题正确,你想将 $variable 从父文件传递到子文件,@Spholt 的答案是信息丰富的, 但您应该知道,当将 $variable 传递给父文件时,子文件应该继承该 $variable 而不进行任何更改。 但只是为了确保我们像 @Spholt 所说的那样传递 $variable。

回答 3 投票 0

如何将多个路由作为参数传递给 Laravel 8 中的 Route::is() 方法?

我正在开发 Laravel 8 应用程序。我需要使用 Route::is 来表示多条路线,如下所示 @if(Route::is('用户') 或 Route::is('注册') 或 Route::is('登录')) 做一点事 @万一 去...

回答 2 投票 0

下拉菜单 - 更改选项后我必须双击才能打开

我的刀片中有顺风下拉菜单(分页菜单)。 当我第一次打开页面时,单击后菜单就打开了,但是当我第二次想更改选项时,我必须单击...

回答 1 投票 0

始终使用 JavaScript 从输入值获取空字符串

我正在尝试在我的网站中构建一个聊天模块。 我创建了一个输入和一个按钮。输入存储要发送的消息,按钮调用 JavaScript 函数以使用

回答 1 投票 0

如何在运行时加载自定义刀片视图

如果我想在运行时从自定义文件夹加载视图,我不知道该怎么做。 我知道我可以将我的视图的永久替代项添加到 config/view.php 文件中的路径值。然而我...

回答 1 投票 0

Laravel Livewire 未在表单复选框中应用“checked”属性

我试图设置一个条件来生成在某些事件下打开的开关,但是当我 livewire:model 时,复选框总是生成关闭状态。我的blade.php: 我试图设置一个条件来在某些事件下生成一个打开的开关,但是当我 livewire:model 时,复选框总是生成关闭状态。我的blade.php: <?php use Spatie\Permission\Models\Role; use Spatie\Permission\Models\Permission; $r = $this->role; $gestion = $r->hasPermissionTo('gestionar'); $consultas = $r->hasPermissionTo('consultar'); $adPe = $r->hasPermissionTo('administrarPerfiles'); $adUs = $r->hasPermissionTo('administrarUsuarios'); ?> <div class="row"> <div class="form-check form-switch col-6 pl-2"> <input class="form-check-input" type="checkbox" wire:model="role.Gestion" id="gest" @if($gestion){ checked } @endif> <label class="form-check-label" for="gest">Gestión</label> </div> <div class="form-check form-switch col-6"> <input class="form-check-input" type="checkbox" id="cons" wire:model="role.Consulta" @if($consultas){ checked } @endif> <label class="form-check-label" for="cons">Consultas</label> </div> </div> 我应该怎么做才能解决这个问题? 只需使用 wire:model 将模型绑定到复选框就足够了。无需手动设置选中的属性。 不要将您的逻辑放入刀片文件中。在 Livewire 组件中设置变量并使用 wire:model 绑定到该变量。 不要使用wire:model,使用wire:click public function paid() { $this->transaction->paid = ! $this->transaction->paid; $this->transaction->save(); } 视野中: <input type="checkbox" wire:click="paid()" @if($transaction->paid) checked @endif>

回答 2 投票 0

我该怎么做才能使用资源粘贴照片到<img src=" ? ">

@foreach($profiles 为 $profile) {{ $profile->id }} {{ $个人资料->电子邮件 }} {{ $个人资料...

回答 3 投票 0

将 html 代码从数据库渲染到 Laravel 刀片视图

我正在尝试将 Laravel Blade 模板中编写的 HTML 代码从数据库检索到我的 Laravel Blade 视图。我能够检索并显示网络视图,但是刀片功能......

回答 1 投票 0

在 Laravel Blade 中生成 HTML 链接

好吧,正如标题所说。我想在 Laravel Blade 中生成链接。问题是,我的内容来自数据库。 身份证 |内容 |地位 ...

回答 4 投票 0

请帮助我编写代码,我该怎么做才能使用资源粘贴照片<img src=" ? ">

@foreach($profiles 为 $profile) {{ $profile->id }} {{ $个人资料->电子邮件 }} {{ $个人资料...

回答 1 投票 0

AlpineJS 点击执行两次

我是 AlpineJS 的新手,在学习它并将其实施到我的项目中时,我发现一些奇怪的事情我无法自己解决。我有一个 Blade 模板,如下所示: 我是 AlpineJS 的新手,在学习它并将其实施到我的项目中时,我发现了一些我自己无法解决的奇怪问题。我有一个看起来像这样的 Blade 模板: <form action="<some_url>" method="POST" style="display: contents"> @csrf <button tabindex="-1" type="submit" class="focus:animate-ping w-full md:w-1/2 block hover:bg-gray-50 rounded-2xl"> <img class="object-cover w-full h-full rounded-lg max-h-64 sm:max-h-96" src={{ <some_url> }}> </button> {{--img below is causing issues!--}} <img x-data="{ id: '{{ <some_hash_id> }}', _token: <csrf-token> }" @click="fetch('/bookmark', {method: 'POST',body: JSON.stringify(id)}).then(response => { if (response.ok) alert('Test - ok') else alert(`Test - problem`) })" class="m-4 self-start" src="<some_img_url>"> <input type="hidden" name="token2" value="{{ <another_token> }}"> </form> 问题是,当我单击我的 img 时,我收到两个警报(两者相同,这不是问题,因为在后端我尚未实现端点)。我尝试查看 AlpineJS 文档,尝试使用 .stop 和 .prevent,甚至不使用 form 我也尝试过。结果总是一样的:( npm run watch一直在运行,我总是用“空缓存”重新加载页面,以确保缓存不会弄乱它。 这里可能存在什么问题?谢谢 尝试将其包装在函数中 <img x-data @click="() => { fetch('https://icanhazdadjoke.com/', {method: 'GET'}).then(response => { if (response.ok) alert('Test - ok') else alert(`Test - problem`) }) }" src="https://cdnjs.com/_/f7a2ebfb819c118086546e481876aef6.svg" /> 您可以将 .debounce 添加到您的 @click 触发器中。 查看文档 on.debounce - Alpine.js.

回答 2 投票 0

Explode 不适用于来自 JS 的字符串

//js // 当按钮被点击时 让标签 = 'foo,bar'; elem.innerHTML += `<x-post tags="${tags}"></x-post>` // post.blade.php @php

回答 1 投票 0

从视图传递 Laravel 组件的多个值

资源/views/index.blade.php 应用程序/视图/组件/card.php 公共$标题...

回答 2 投票 0

Laravel 集合/刀片 - 显示独特的行

不太确定如何提出这个问题,所以我希望它代表了我的问题。我想要实现的是,在我网站的仪表板上为每个用户显示即将到来的我们的餐食列表......

回答 0 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.