我知道还有其他问题可以解决这个问题,但它们主要涉及根据变量向属性添加值。我想根据条件包含几个属性及其值。
我的第一次尝试,正如你在下面看到的,除了不工作之外,可读性也不是很好:
<input
type="text"
{{ $errors->has('bedrooms') ? "data-toggle='tooltip' data-placement='right'
title='please, enter a value between 1 and 9.'" : "" }}
/>
Run Code Online (Sandbox Code Playgroud)
生成 html:
<input type="text"
data-toggle="tooltip" data-placement="right"
title="please, enter a value between 1 and 9." />
Run Code Online (Sandbox Code Playgroud) 使用Laravel Blade,有没有一种优雅的方法来检查视图是否存在之前@include?
例如,我目前正在这样做:
@if(View::exists('some-view'))
@include('some-view')
@endif
Run Code Online (Sandbox Code Playgroud)
当'some-view'是一个包含变量的长字符串时,这会非常麻烦.
理想情况下,我正在寻找这样的东西:
@includeifexists('some-view')
Run Code Online (Sandbox Code Playgroud)
或者,@include如果视图不存在,则只输出一个空字符串.
另外,我还想提供一组视图,并使用存在的第一个视图,例如:
@includefirstthatexists(['first-view', 'second-view', 'third-view'])
Run Code Online (Sandbox Code Playgroud)
如果不存在,则输出空字符串.
我该怎么做呢?我需要扩展BladeCompiler还是有另一种方式?
我有以下文件:
foo.blade.php
<html>
<head>
</head>
<body>
<h1>Foo Template</h1>
@yield('content')
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
bar.blade.php
<h2>Bar Template</h2>
<div class="bar-content">
@yield('bar-content')
</div>
Run Code Online (Sandbox Code Playgroud)
我想创建另一个能够扩展上述模板的文件.例如:
@extends('foo')
@section('content')
<p>Hello World</p>
@extends('bar')
@section('bar-content')
<p>This is in div.bar-content</p>
@endsection
@endsection
Run Code Online (Sandbox Code Playgroud)
给:
<html>
<head>
</head>
<body>
<h1>Foo Template</h1>
<p>Hello World</p>
<h2>Bar Template</h2>
<div class="bar-content">
<p>This is in div.bar-content</p>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我最近推出了一个基于 laravel 的电子商务网站。现在我真的认为实施 AMP 是个好主意,因为它现在支持电子商务(甚至 shopify 和 ebay 也在实施它)
所以我的问题是我们如何在 Laravel 上实现 AMP?有没有办法在桌面版上使用 desktopMainTempalte.blade.php 并在移动版上切换到 mobileMainTemplate.blade.php?我只是不想为移动设备创建一个不同的域作为 m.domain.com。我想要一些有创意的东西,但我不确定我是否朝着正确的方向前进。
如果你在我的鞋子里,你们会做什么?
我有一个显示项目的网页.对于每个项目,都有一个按钮(vuejs组件),允许用户将此项目切换(添加/删除)到他的集合.
这是组件:
<template lang="html">
<button type="button" @click="toggle" name="button" class="btn" :class="{'btn-danger': dAdded, 'btn-primary': !dAdded}">{{ dText }}</button>
</template>
<script>
export default {
props: {
added: Boolean,
text: String,
id: Number,
},
data() {
return {
dAdded: this.added,
dText: this.text,
dId: this.id
}
},
watch: {
added: function(newVal, oldVal) { // watch it
this.dAdded = this.added
},
text: function(newVal, oldVal) { // watch it
this.dText = this.text
},
id: function(newVal, oldVal) { // watch it
this.dId = this.id
}
},
methods: {
toggle: …Run Code Online (Sandbox Code Playgroud) 在Laravel中,有不同的使用方法:
@yield('section1') // Filled in by child view
@section('section2')
// Default content, can be overwritten by child
// Different ways of closing the section
@endsection|stop|show|append
Run Code Online (Sandbox Code Playgroud)
谁能告诉我这些之间究竟有什么区别?
根据这一点,@ stop和@endsection可能是相同的.(其中一个已被弃用,但现已不再使用)
在我的代码中,我使用的是typeahead.js.我使用Laravel 5,我需要替换var states我的{{ $jobs }}变量.我需要将所有作业标题列为数组.
在我的控制器中我有
$jobs = Job::all(['job_title']);
Run Code Online (Sandbox Code Playgroud)
我知道javascript中的循环方法,但我不知道如何在javascript中"链接"我的刀片变量.谁知道怎么样?
我试过,在my.js中
var jobs = {{ $jobs }}
Run Code Online (Sandbox Code Playgroud)
但那不行.
我正在尝试创建一个刀片指令,以突出显示将从我的搜索查询返回的一些单词.
这是我的刀片指令:
class AppServiceProvider extends ServiceProvider
{
public function boot()
{
Blade::directive('highlight', function($expression, $string){
$expressionValues = preg_split('/\s+/', $expression);
foreach ($expressionValues as $value) {
$string = str_replace($value, "<b>".$value."</b>", $string);
}
return "<?php echo {$string}; ?>";
});
}
public function register()
{
}
}
Run Code Online (Sandbox Code Playgroud)
我用这样的方式调用刀片:
@highlight('ho', 'house')
Run Code Online (Sandbox Code Playgroud)
但是,这个错误跟随着我:
Missing argument 2 for App\Providers\AppServiceProvider::App\Providers\{closure}()
Run Code Online (Sandbox Code Playgroud)
怎么解决?
我有一个包含表单的vue模板:
<form id="logout-form" :action="href" method="POST" style="display: none;">
{{ csrf_field() }}
</form>
Run Code Online (Sandbox Code Playgroud)
在laravel中,表单必须定义csrf_field().但是在一个vue组件中,该语句{{ csrf_field() }}意味着我有一个csrf_field在我的vue实例中命名的方法,而我正在调用它.
在这种情况下如何添加csrf_field?
我知道 Laravel 中的命名约定包含在另一个问题中,但刀片文件没有在那里介绍。我阅读了几个博客和论坛,它们都提供了不同的方法,所以我想在这里问:
我的控制器方法是AdminController@listPropertyTypes - 它列出和管理属性类型..
一篇博客建议:
/resources/views/admin/property/types.blade.php
Run Code Online (Sandbox Code Playgroud)
另一个博客建议下划线或没有空格:
/resources/views/admin/property_types.blade.php
/resources/views/admin/propertytypes.blade.php
Run Code Online (Sandbox Code Playgroud)
我个人会这样命名,因为它是一个视图:
/resources/views/admin/property-types.blade.php
Run Code Online (Sandbox Code Playgroud)
是否有最佳实践或 PSR 规则?
laravel-blade ×10
laravel ×9
laravel-5 ×4
php ×4
blade ×3
amp-html ×1
bootstrap-4 ×1
html ×1
javascript ×1
laravel-5.3 ×1
vue.js ×1
vuejs2 ×1