问题标签 [laravel-components]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - Laravel 组件中的逻辑
我有一个 laravel 组件
我在刀片模板中渲染
有时我只有一个H1。如果我没有子标题,如何删除标记?
laravel - 新刀片组件 Laravel 7
我创建了这个新的 Laravel 组件,如何使用 {{ $name }} 刀片变量来使用自定义 foreach?
查看 -> 组件
资源 -> 组件
-> 意见
谢谢 :)
编辑:我解决了这个问题,即使我想有一个更好的解决方案
javascript - @include Laravel Blade 模板以使用 Javascript 追加
我试图在 PHP 和 Javascript 中重用相同的 HTML 代码。在 PHP 中,我使用 Laravel 的组件机制来加载传递必要参数的文件。
它工作得很好。
在页面底部,我使用如下 jQuery:
一切正常。每次单击时,同一个组件都会附加我传递的相同数据。
但是,如果我替换以下行的静态值:
使用我拥有的动态值,使用 Javascript 模板文字:
页面因 Laravel 的 Parse 错误而停止渲染:
ErrorException
使用未定义的常量 imageId - 假定为“imageId”(这将在 PHP 的未来版本中引发错误)
选择?
我已经看到了一些 我个人不喜欢的在 Javascript 中加载刀片的AJAX 方法。
调试
如果我注释掉该行,它仍然会抛出相同的错误,直到我完全删除该行。因此,我怀疑 JS 模板文字 () 的花括号${}
被解析为 Laravel 刀片语法 ( {{}}
)。
请注意,`
我尝试使用单引号和双引号(如这里所示)代替反引号 ( ),但由于它们与 HTML 代码冲突而出现错误。
我已经阅读了有关Blade 和 JS 框架的 Laravel 文档,但是 IMO,无论是@
语法@verbatim
还是出于完全相反的目的,都不会为我服务。
更新
我最终想出了一个在 JavaScript 中使用刀片的替代方案:
使用此代码,我可以在没有动态数据的情况下完美地拥有 HTML。首先console.log
是完美地显示 HTML:
现在,到目前为止,模板还不是 Laravel 刀片/组件,所以我必须将我的动态数据放到它上面。当我试图将我的动态数据放到 HTML 中时,HTML 将完全被修改后的<img>
字符串替换。第二个console.log
输出是:
laravel-8 - Laravel 不能从组件类返回集合/数组到组件
如果我在渲染方法中使用 dd(),则输出到屏幕
这是 ProductSelect 组件类。试过...
- view('components.product-select',['products'=>$products]);
- view('components.product-select',compact('products'));
- view('components.product-select',['products'=>$products->toArray()]);
- view('components.product-select')->with(['products'=>$products->toArray()]);
和其他几个
. 我很困惑,因为 DD 将发送到屏幕。但是当我在视图中使用变量时,它没有拾取它。
product-select.blade 在这里。我试图在这里用产品的输出创建另一个组件。我认为在这里创建另一个组件并不重要,因为我可以只用一个回声就取出那段代码,但什么也没有发生。
有什么想法吗?
laravel - 将 css/js 文件从一个组件推送到另一个组件
我创建了 2 个组件:layouts/app.blade.php
和navigation.blade.php
layouts/app.blade.php
看起来像这样:
navigation.app.blade
看起来像这样:
问题是我的@push()
方法不起作用。据我了解,正在推送的组件也应该扩展布局,但这是不可能的,因为导航不应继承所有布局的内容。我有没有可能将 css/js 文件从一个组件发送到另一个组件而不扩展它?
谢谢!
laravel - Laravel 组件:{{ slot }} 中的默认内容
在老式的 Laravel 刀片模板中,我们曾经以@section('section-name')
以下方式使用:
然后扩展该模板:
在上面,我渲染的 HTML 输出如下所示,因为'heading'
扩展文件中的“缺失”部分意味着我们默认返回模板中的内容:
但是在新的组件做事方式中,我这样做:
如果您还没有收集,问题是:如何为插槽的内容设置默认值,这样如果扩展组件/模板中未提供它,它会回退到该默认值?
(我已经完成了搜索,但无法找到之前提出的相同问题)
编辑:
我应该补充一点,我已经看到了解决方案(在 Laravel 文档中):
但这似乎只有在默认值是一个易于管理的短字符串时才合适。如果默认值是一个长的 HTML 流,那么它就不能满足我的需要。
编辑2:
重申一下:问题的重点是默认内容可能是一长串 HTML。通过传入一个字符串(无论是否格式化为 HTML)来解决问题并不适合我的实际需求。
laravel - Laravel 8:如何将数据从祖父组件传递给孙子?
我最近在我的一门课程中开始使用 Laravel,这些组件看起来非常有前途。不过,我遇到的一个问题是将数据从控制器传递到嵌套组件。
这是我的(过于简单的)设置:
mainframe.blade.php(用作我的布局模板):
master-header.blade.php :
最后是 home.blade.php,它“扩展”了我的布局页面:
现在,我认为它就像简单地将 $headerText 内容通过我的控制器一样简单,如下所示:
...但显然,该变量仅传递给初始的“主页”视图,但由于出现错误,因此并未一直传递到我的标题组件。
我一直在阅读 View Composer 作为解决方案,但我认为可能有一种更简单的方法来做到这一点。
那么,正如标题中所问的,我如何将数据从祖父组件传递到他的孙子组件之一?
谢谢 !
laravel - 在 Laravel 组件中,如何删除默认类?
在 Laravel 组件中,您可以指定默认类并将它们与传入的额外类合并,如下所示:
但是如果我想删除那个“text-white”类呢?如何传入要从组件中排除的类列表?
laravel - 将数组作为属性传递给刀片自定义组件
我input
在 Laravel 中挑战了一个通用组件,如下所示:
我想在刀片模板中按如下方式使用它:
问题是当我像上面的例子一样传递一个数组对象时,它似乎破坏了视图,但是当我发送一个这样的变量时:
有没有办法按原样传递数组,而不必创建变量并发送它,这样我就不会添加不必要的 @php 指令?