laravel-blade 相关问题

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

我如何从mysql的产品表中显示随机产品

我如何在我的 laravel estore 上随机展示产品。 我希望代码能够随机选择 10 个产品并最好使用 foreach 显示 我如何在我的 laravel estore 上随机展示产品。 我希望代码能够随机选择 10 个产品并最好使用 foreach 显示 <section class="sec-padding trending-product-sec"> <div class="custom-container"> <div class="heading"> <h2>Trending <span>Products</span></h2> </div> <div class="row"> <div class="col-12"> <div class="owl-carousel custom-arrow" id="trending-slider"> @foreach($latests as $product) <div class="item"> <div class="trending-product"> <div class="add-wish"> <form class="addtowishlist-form"> {{csrf_field()}} @if(Session::has('uniqueid')) <input type="hidden" name="uniqueid" value="{{Session::get('uniqueid')}}"> @else <input type="hidden" name="uniqueid" value="{{str_random(7)}}"> @endif <input type="hidden" name="title" value="{{$product->title}}"> <input type="hidden" name="product_id" value="{{$product->id}}"> <input type="hidden" name="user_id" value=""> <input type="hidden" id="cost" name="cost" value="{{$product->price}}"> <i class="fa fa-heart-o product-addWishlist-btn to-wishlist" id="{{$product->id}}" aria-hidden="true" att="0"></i> </form> </div> <a href="{{url('/product')}}/{{$product->id}}/{{$product->title}}"> <img class="img-responsive" src="{{url('/timthumb.php?src=/assets/images/products')}}/{{$product->feature_image}}&amp;w=700&amp;h=443" alt="Product Image"> <h5>{{$product->title}}</h5></a> <p> {{ substr(str_replace('&nbsp;', ' ', strip_tags($product->description)), 0, 600)}}</p> <ul class="price-list"> <li><i class="fa fa-dollar"></i>{{$product->price}}</li> @if($product->rocketdelivery == 'yes') <li> <img class="rocket-delivery" src="{{ URL::asset('kumba/images/rocket-delivery.png')}}"> </li> @else <li></li> @endif </ul> @if($product->bylocal == 'yes') <img class="buy-local" src="{{ URL::asset('kumba/images/buy-local.png')}}"> @endif <div class="ratings"> <div class="empty-stars"></div> <div class="full-stars" style="width:{{\App\Review::ratings($product->id)}}%"> </div> </div> <form class="addtocart-form text-center"> {{csrf_field()}} @if(Session::has('uniqueid')) <input type="hidden" name="uniqueid" value="{{Session::get('uniqueid')}}"> @else <input type="hidden" name="uniqueid" value="{{str_random(7)}}"> @endif <input type="hidden" id="price" name="price" value="{{$product->price}}"> <input type="hidden" name="title" value="{{$product->title}}"> <input type="hidden" name="product" value="{{$product->id}}"> <input type="hidden" id="cost" name="cost" value="{{$product->price}}"> <input type="hidden" id="quantity" name="quantity" value="1"> <input type="hidden" id="size" name="size" value=""> @if($product->stock != 0 || $product->stock === null ) <button type="button" class="custom-btn product-addCart-btn to-cart"><i class="margin-right-5 fa fa-shopping-cart" aria-hidden="true"></i> {{$language->add_to_cart}}</button> @else <button type="button" class="custom-btn product-addCart-btn to-cart" disabled><i class="margin-right-5 fa fa-shopping-cart" aria-hidden="true"></i> {{$language->out_of_stock}}</button> @endif </form> </div> </div> @endforeach </div> </div> </div> </div> 这就是我的开发人员的显示方式,但效率不高。那么我接手这个项目后如何展示产品呢?我尝试了很多方法,但没有一个有效。我对 Laravel 还是新手 您可以使用 inRandomOrder() 以随机顺序获得 Products: $products = Product::inRandomOrder()->take(10)->get(); 以上将为您提供 10 个随机 products,您可以从那里将它们传递到您的视图或任何您需要使用随机产品的地方。例如: public function index() { $products = Product::inRandomOrder()->take(10)->get(); return view('products.index', compact('products')); } 然后在您的products.view刀片文件中,您可以像往常一样循环浏览产品: @foreach ($products as $product) <p>{{ $product->name }}</p> @endforeach 根据您的评论如下: $latests = Product::where('status','1')->orderBy('id','desc')->take(8)->get(); 如果您真正想要的是 10 最新记录,但按随机顺序,请使用 Laravel 集合上提供的 shuffle 方法: $latests = Product::where('status', '1') ->orderBy('id', 'desc') ->take(10) ->get() ->shuffle(); 在您的控制器中使用 RAND $products = Product::orderByRaw('RAND()')->take(10)->get(); return view('your.view page', compact('products')); 在视图页面中循环通过@foreach @foreach ($products as $product) <p> {!! $product->image!!} </p> <p> {!! $product->name !!} </p> //more code here @endforeach

回答 2 投票 0

如何使用 Laravel 本地化工具更改布局的语言?

我正在使用 Laravel 的本地化工具来更改应用程序的语言(英语和法语)。通过导航栏中的选择即可更改语言。 有了官方文档我...

回答 2 投票 0

导入脚本并转换 HTML、JS 和 CSS 代码以在 Laravel 中运行

我有一个 Laravel 项目,我想在 Laravel Blade 前端运行 html、js 和 css 代码,但遇到了一些问题。我是 Laravel 的新手,并且从 Angular 和 NodeJS 转向,所以我很抱歉......

回答 1 投票 0

在 Laravel 中更改布尔值时遇到奇怪的问题

所以在 laravel 中遇到了这个奇怪的问题。 我正在尝试更新数据库中的布尔值,但我的日志中不断收到此奇怪的错误: 缺少 [路线:change.stock] 所需参数...

回答 1 投票 0

Laravel Livewire 表单具有多行和多个相关选择

我尝试创建一个根据需要创建新行的表单。这一行有每一个不同的选择,彼此相关:当一个更新时,另一行也会更新其选项列表。但是当更新...

回答 1 投票 0

图像未在视图 laravel 7 中加载

图像工作得很好,我的 git 合作者搞乱了项目,所以我现在正在使用恢复项目,图像不再显示 这是我的代码一切正常 我的...

回答 1 投票 0

Laravel 11:当我发送电子邮件时,二维码未出现在电子邮件中

我尝试在使用gmail smtp和Laravel 11发送电子邮件时动态生成二维码。起初二维码没有生成,它总是空白,然后我尝试了这里的推荐

回答 1 投票 0

Laravel getQueryString() 不带 &

我正在尝试将包含部分 URL 的变量输出到我页面上的 Javascript 中。当我这样做时,它会将任何 & 更改为 &,这会破坏 URL。 我尝试过使用 str_replace,

回答 4 投票 0

Laravel Blade:如何从当前语言环境访问不同语言环境的字符串翻译?

我是 Laravel 的新手。请幽默一下我。我正在开发一个可以使用两种不同语言的网站。我在 resources/lang 中有两个文件 en.json 和 te.json: // en.json “语言...

回答 1 投票 0

PHP 刀片并排对齐扩展布局

我正在尝试构建一个响应式仪表板,使用侧边栏在右侧进行导航,我将侧边栏构建为布局,并通过使用

回答 1 投票 0

Blade 自定义指令接收字符串形式的值,而不是其原始值

我是 Laravel 的新手,经过研究,但我找不到如此简单的解决方案。我在 app/Providers/AppServiceProvider.php 文件中为 Blade 创建了一个自定义指令,即“test”: 我是 Laravel 的新手,进行了研究,但我找不到如此简单的解决方案。我在 app/Providers/AppServiceProvider.php 文件中为 Blade 创建了一个自定义指令,即“测试”: <?php namespace App\Providers; use Illuminate\Support\ServiceProvider; use Illuminate\Support\Facades\Blade; class AppServiceProvider extends ServiceProvider { /** * Bootstrap any application services. * * @return void */ public function boot() { Blade::directive('test', function($expression){ // Dumps as well: "$var1 , $var2" dump($expression); list($arg1, $arg2) = explode(',',str_replace(['(',')',' '], '', $expression)); // will print: $var1 , $var2 return "<?php echo '$arg1 , $arg2'; ?>"; }); } /** * Register any application services. * * @return void */ public function register() { // } } 理论上,它在刀片模板中的用法应该非常简单,但是如以下示例所示,该指令正在打印参数的文字值,例如 $var1 正在打印 $var1 而不是其真实内容“test a”: <?php $var1 = 'test a'; $var2 = 'test b'; ?> // Prints: $var1 , $var2 // Expected: "test a test b" @test($var1 , $var2) 已经尝试使用多个标签打印它们的值: @test( {{ $var1 }}, {{ $var2 }}) @test( {!! $var1 !!}, {!! $var2 !!}) @test( {{{ $var1 }}}, {{{ $var2 }}}) 但两者都不起作用,该指令始终接收变量的名称而不是其内容。在这种情况下我忽略了什么?任何帮助表示赞赏。我正在使用 Laravel 5.4.*. 编辑:终于我有了真正的解决方案。 您需要添加以 list 开头的行来返回语句,因为 Blade 在替换指令后会在 storage/framework/views 目录中创建一个 php 文件。所以你需要类似以下的东西。 Blade::directive('test', function($expression){ return '<?php list($arg1, $arg2) = explode(\',\',str_replace([\'(\',\')\',\' \'], \'\', ' . $expression . ')); echo "$arg1 -- $arg2"; ?>'; }); 最后你可以像下面这样使用它; @php($expression = "(0,1)") @test($expression) @test("(10,12)") //It works now 注意:您应该在 Providers 目录中创建 BladeServiceProvider,然后将其添加到 config/app.php 中的提供程序中。然后您可以将指令添加到 BladeServiceProvider。这并不重要。这只是比你的方法更正确。 制作完定制刀片后,试试这个: php artisan view:clear.

回答 2 投票 0

Laravel Pest 和 Blade 指令

我正在构建一个管理面板,其中的按钮仅在用户类型为“阅读器”时才可见。为此,我创建了一个自定义刀片,如果,它看起来像这样 Blade::if('读者', fu...

回答 1 投票 0

在 Laravel 10 上将 JavaScript 代码附加到 Blade 时如何使用 value="{{ old('value', default_value) }}"

我正在开发一个项目,我必须让我的用户能够添加和删除项目;在本例中是奖励信息。我正在 Laravel 10 上开发这个,我已经尝试了很多尝试......

回答 1 投票 0

Uncaught 在依赖选择表单的 DOM 树中找不到 Livewire 组件

我尝试使用 Laravel 和 Livewire 制作一个从属表单,根据另一个的选定值填充其中一个。当我在第一个选择中选择值时,JS 控制台给我...

回答 1 投票 0

如何将 Livewire 内部状态更改填充到外部级别

Livewire 组件的我的 Blade 视图: Livewire 组件的我的 Blade 视图: <div> <input type="checkbox" class="form-checkbox" wire:model="inner_checked" wire:click="toggleChecked"> @if ($inner_checked) inner checked @else inner unchecked @endif </div> 效果很好 - 完全根据复选框状态打印。 然后在外层使用该组件: <livewire:form-checkbox :id="$id" :checked=$outer_checked /> @if ($outer_checked) Outer checked @else Outer unchecked @endif 效果不好 - 根据 $outer_checked 的初始值很好地打印外部状态,但复选框内部的更改未填充到外部。 好的,将 mount(string $id, bool $outer_checked) 重写为 mount(string $id),并将复选框组件的用法重写为 <livewire:form-checkbox :id="$id" wire:model=$outer_checked />。仍然没有变化 - 内部状态改变,外部状态 - 没有。我猜这是因为 wire:model 在这里不工作,在外层。 如何将内部状态更改填充到外部级别? 您需要使用一个事件,从子级(内部)调度它并在父级(外部)上监听它 use Livewire\Attributes\On; class OuterComponent { public bool $outer_checked; #[On('inner-state-updated')] public function applyChangesToOuterState(bool $value) { $this->outer_checked = $value; } } class InnerComponent { public bool $inner_checked; public function updated($property) { if ($property === 'inner_checked') { $this->dispatch('inner-state-updated', value: $this->inner_checked); } } // alternatively public function updatedInnerChecked() { $this->dispatch('inner-state-updated', value: $this->inner_checked); } } https://livewire.laravel.com/docs/events https://livewire.laravel.com/docs/lifecycle-hooks#update 或者,如果您可以从 javascript 端挂钩此更改,则可以访问父级的属性并使用 $parent 将其设置在那里。

回答 1 投票 0

如何使用按钮作为 Livewire 切换器

带电组件刀片: @如果($ 带电元件刀片: <div> <input type="checkbox" class="form-checkbox" wire:model="collapsed" wire:click="toggleCollapsed"> @if ($collapsed) show icon for collapsed state @else show icon for expanded state @endif </div> 按预期工作 - $collapsed 由于复选框而更改,显示了适当的图标。 但是使用复选框来切换视觉状态是不合逻辑的。 尝试使用更有逻辑性的按钮: <div> <button wire:model="collapsed" wire:click="toggleCollapsed"> @if ($collapsed) show icon for collapsed state @else show icon for expanded state @endif </button> </div> 不工作。 第一个想法 - 按钮本身不是切换器,所以我应该通知,折叠状态发生了变化: public function toggleCollapsed(): void { $this->collapsed = !$this->collapsed; } 不要再工作了。 此外this->collapsed每次我进入toggleCollapsed()都有初始值-方便的切换只是被忽略。 我想我应该在切换 $this->collapsed = !$this->collapsed 后通知组件组件状态发生了变化(我发现它与组件的 public bool $collapsed 属性不同)。如何做到这一点? 附注我强烈反对使用 wire:click="$toggle('collapsed')",因为 toggleCollapsed() 包含此处未显示的更复杂的逻辑。 您面临的问题是由于 wire:model 指令主要用于输入字段(如复选框),并且不适用于按钮等元素。这就是为什么复选框可以工作但按钮无法正确切换折叠状态的原因。 以下是有关如何使用按钮处理切换而不需要 wire:model 的分步指南: 从按钮中删除 wire:model 由于 wire:model 不适合按钮,因此将其从按钮中删除。该按钮在这里的作用只是触发切换,wire:click 将处理该问题。 更新刀片模板 您更新后的 Blade 模板应如下所示: <div> <button wire:click="toggleCollapsed"> @if ($collapsed) <span>Collapsed Icon</span> @else <span>Expanded Icon</span> @endif </button> </div> 确保toggleCollapsed()方法有效 您已经编写的用于切换折叠状态的方法是正确的: public function toggleCollapsed(): void { $this->collapsed = !$this->collapsed; } 只要 $collapsed 是 Livewire 组件的公共属性,此方法就应该没问题。 检查折叠的财产是否正确申报 确保折叠的属性在您的 Livewire 组件中声明为公共属性: class YourComponent extends Component { public bool $collapsed = false; public function toggleCollapsed(): void { $this->collapsed = !$this->collapsed; } public function render() { return view('livewire.your-component'); } } 为什么 wire:model 不适用于按钮 wire:model指令用于绑定属性以形成输入(例如文本字段、复选框),以实时同步 UI 与后端状态。由于按钮没有“值”或像复选框一样的状态,因此wire:model在这里无效。 通过删除 wire:model 并依靠 wire:click 手动切换 $collapsed 状态,您的按钮将按预期工作。此方法为您提供处理toggleCollapsed() 函数内更复杂逻辑所需的控制。

回答 1 投票 0

如何从 Livewire 处理程序中显示 Blade 视图

具有带有wire:click="toggleChecked"子句的Livewire组件,该处理程序是: 公共函数toggleChecked():无效 { (new ScaleController())->index(); } 我想表示欢迎

回答 1 投票 0

Laravel 419 页面已过期,可在本地运行

我最近在我的网站上添加了一项新功能,以便管理员能够查看和删除存储/应用程序/公共/文件/上传中的文件 此功能在我的本地副本中运行良好,但在实时服务器上我...

回答 1 投票 0

Laravel Blade,全局元描述和子页面的不同元描述

我有一个index.blade,标头中包含所有必要的元标记,让我们以描述为例: 那个...

回答 3 投票 0

Laravel 通过交换出发地和目的地形式进行搜索

我有一个使用 Laravel 11 检查运费的项目,我已经有一个表格,其中包含从出发地到目的地已确定的价格。 我使用包含这两个字段的搜索表单,但是如何...

回答 1 投票 0

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