我正在制作一个双语应用程序.我为每个使用相同的路由,但我对两种语言使用不同的视图.每当我想重定向到我想要通过的路线时{{ route('test.route', 'en') }}.在我传递的地方en,我想从视图中获取当前的语言环境值,然后将其传递给路径.请帮忙.
在我最喜欢的模板框架中,它们通常具有嵌套布局的能力.Blade中有可能出现这种情况吗?
例如...
<html>
<head><!-- stuff --></head>
<body>
@yield('content')
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
@extend('master')
<nav>
<!-- nav content -->
</nav>
@yeild('content')
Run Code Online (Sandbox Code Playgroud)
@extend('nav')
<breadcrumb>
<!-- breadcrumb content -->
</breadcrumb>
@yield('content')
Run Code Online (Sandbox Code Playgroud)
@extend('nav')
@section('content')
<home>
<!-- content -->
</home>
@endsection
Run Code Online (Sandbox Code Playgroud)
@extend('breadcrumb')
@section('content')
<about>
<!-- content -->
</about>
@endsection
Run Code Online (Sandbox Code Playgroud)
我喜欢这种格式的原因是它能够选择你的注射点使它非常优雅(IMO)!
布局级联并'content'在编译时html随着树一样重建.
这可能吗?我希望避免@include在布局中做,因为我个人发现它们很麻烦,有点眼睛酸痛,特别是当你得到经常重复的元素,但不是到处都是(面包屑).
编辑:根据答案.
理想情况下,'content'将重建并传递嵌套布局链.即如果您有引用nav.blade.php主页内容的主页,则会将其添加到导航布局并进行编译.然后,由于导航布局引用master.blade.php已编译的布局将被传递到master并再次构建.没有重复任何内容.
在我的数据库中,我保存包含刀片标记的文本,如:
Hello {!! $name !!} how are you today.
Run Code Online (Sandbox Code Playgroud)
我将此文本传递给变量$ text中的电子邮件模板.在我用的电子邮件{!! $ text !!}获取邮件中的文本.但是当电子邮件发送时它会显示{!! 标志而不是变量(也通过).如何在我的数据库中保存刀片标记并将其传递给我需要替换的代码{!! 有正确变量的东西!!}
我的邮件功能.
$email = $order->email;
$name = $order->billingname;
//The text From the database.
$emailText = Email::findOrFail(5);
$mailtext = $emailText->text;
Mail::send('emails.tracktrace', ['text'=>$mailtext'email' => $email, 'name' => $name],
function ($m) use ($code, $email, $name) {
$m->from('info@domain.com', 'domain');
$m->to($email, $name)->subject('Track your package!');
});
Run Code Online (Sandbox Code Playgroud)
更新
我有一个解决方法,我做:
$mailtext = str_replace('[name]', $name, $mailtext);
Run Code Online (Sandbox Code Playgroud)
这样用户可以使用[名称],我仍然想知道如何仅使用刀片.
如何动态获取当前URL的最后一部分没有'/'?
例如:
www.news.com/foo/bar
get - > bar
www.news.com/foo/bar/fun
get - >有趣
在当前视图中放置函数或如何实现它的位置?
我有以下类,我定义了我的最小/最大长度值:
class MinMaxValuesUser {
const Min_UserName = 6;
const Max_UserName = 30;
}
Run Code Online (Sandbox Code Playgroud)
以下是请求类中的规则,其中使用最小最大值而不是硬编码.
public function messages() {
return [
"Min_UserName.min" => trans("Profile.Min_UserName"),
"Max_UserName.max" => trans("Profile.Max_UserName")
];
}
public function rules() {
return [
"UserName" => "min:" . MinMaxValuesUser::Min_UserName
. "|max:" . MinMaxValuesUser::Max_UserName
];
}
Run Code Online (Sandbox Code Playgroud)
以下是我使用相同服务器端类的JQuery Validate代码.
$('form#frmProfile').validate({
rules: {
UserName: {
minlength: {!! \App\MinMaxValues\MinMaxValuesUser::Min_UserName !!},
maxlength: {!! \App\MinMaxValues\MinMaxValuesUser::Max_UserName !!}
}
}
});
Run Code Online (Sandbox Code Playgroud)
问题
当我编写大量代码时,我已经开始使用已经嵌入Laravel的Vue.js了.这里的一切都很棒
但正如我们所知,vue.js是一个前端框架并在客户端加载,因此无法使用上述服务器端类来保持最大最大数量集中.
请建议如何摆脱这个问题.
如果我使用,{{$node[0]->url}}那么Laravel的模板引擎会显示正确的结果,但是我无法弄清楚如何在@foreach循环中使用@for $ i = 0来显示所有内容这就是我在路径文件中的内容
$oReturn = new stdClass();
$fid='endpoints';//sample fid
$url = 'http://localhost:5493/sdata/$system/registry/'.$fid;
$xml = simplexml_load_file($url);
foreach($xml->xpath("//sdata:payload") as $entry) {
// xpath here must be from payload to endPoint--type
$content = $entry->xpath("./sdata:endPoint--type");
foreach($content as $c) {
// Make set of children with prefix sdata
$nodes = $c->children('sdata', true);
}
// add parsed data to the array
$oReturn->entry[] = $nodes;
}
return View::make('index', compact('oReturn'));
Run Code Online (Sandbox Code Playgroud)
这就是我在我的视图文件中尝试过的
@for($i=0; $i < 4; $i++)
@endfor
@foreach ($oReturn as $node)
<li>{{$node[$i]->url}}</li>
@endforeach
Run Code Online (Sandbox Code Playgroud)
对不起,这是完整的print_r结果 …
我试图使用Laravel随机化背景.我将$ background变量传递给视图,然后尝试将其作为内联样式加载.
但是,我正在努力声明资产的路径,然后一起调用变量,因为它一直出错.
我目前的代码是:
<section class="page" style="background-image: url({{ asset('img/backgrounds/{{ $background }}.jpg') }});">
Run Code Online (Sandbox Code Playgroud)
$ background是变量,我试图引用资产路径.
有没有更好/更简单的方法来做到这一点?或者我怎样才能让它发挥作用.如果需要,不要介意使用PHP代码作为替代方案.
谢谢
我一直在使用Laravel的中间件遇到一些问题.让我告诉你我想要完成的基本想法:
网站上的注册用户将具有以下四种角色之一:
fyi:'overview'是一种索引视图,但仅适用于审批者角色和更高级别
你们有什么建议是最好的方法呢?这是我到目前为止所做的,但它似乎不起作用:
Kernel.php
protected $middlewareGroups = [
...
'approver+' => [
\App\Http\Middleware\Approver::class,
\App\Http\Middleware\Editor::class,
\App\Http\Middleware\Admin::class,
],
];
protected $routeMiddleware = [
...
'student' => \App\Http\Middleware\Student::class,
'approver' => \App\Http\Middleware\Approver::class,
'editor' => \App\Http\Middleware\Editor::class,
'admin' => \App\Http\Middleware\Admin::class,
];
Run Code Online (Sandbox Code Playgroud)
HTTP \中间件\ admin.php的
public function handle($request, Closure $next)
{
if (Auth::check())
{
if(Auth::user()->isAdmin())
{
return $next($request);
}
}
return redirect('login');
}
Run Code Online (Sandbox Code Playgroud)
'用户'Eloquent模型:
public function isAdmin() …Run Code Online (Sandbox Code Playgroud) 我在尝试显示数据库中的数据时出错。这个问题是由在本网站上创建帖子的其他人发生的。但他们有一个 foreach 循环而我没有。所以针对这个问题给出的所有答案都不起作用。
物品控制器
public function showwereld($id)
{
$artikels = Artikel::where('id', $id);
return view('pages.show')->with('artikels', $artikels);
}
Run Code Online (Sandbox Code Playgroud)
show.blade.php
public function showwereld($id)
{
$artikels = Artikel::where('id', $id);
return view('pages.show')->with('artikels', $artikels);
}
Run Code Online (Sandbox Code Playgroud)
在我的项目中,我在 SASS 和 Blade 中使用了一些资源(主要是图像)。另外,我有一些资源只在 SASS 中使用,有些只在 Blade 中使用。
例如,我可以mix('images/logo.png')在 Blade 文件和background: url('../images/logo.png')SASS 文件中使用。
至于我的目录结构,我做了以下事情:
- resources
- js
- sass
- images // All images used by Blade, Sass, or both
- fonts
Run Code Online (Sandbox Code Playgroud)
为了编译我的资源并将它们放在public文件夹中,我使用以下内容webpack.mix.js:
mix.copy('resources/images/**/*.*', 'public/images');
mix.copy('resources/fonts/**/*.*', 'public/fonts');
mix.version('public/images/**/*.*');
mix.version('public/fonts/**/*.*');
mix.js('resources/js/app.js', 'public/js')
.js('resources/js/vendor.js', 'public/js')
.scripts([ // Old not ES6 JS
'resources/js/tpl/core.min.js'
], 'public/js/core.min.js')
.sass('resources/sass/app.scss', 'public/css')
.sourceMaps()
.version();
Run Code Online (Sandbox Code Playgroud)
结果,我在 app.css 中得到了那个 URL:
background: url(/images/logo.png?0e567ce87146d0353fe7f19f17b18aca);
Run Code Online (Sandbox Code Playgroud)
虽然我在渲染的 HTML 中得到另一个:
src="/images/logo.png?id=4d4e33eae039c367c8e9"
Run Code Online (Sandbox Code Playgroud)
它们被视为 2 种不同的资源,这不是我所期望的......
潜在的解决方法 …
laravel-blade ×10
laravel ×8
blade ×4
php ×4
laravel-5.4 ×2
frontend ×1
laravel-4 ×1
laravel-5 ×1
laravel-5.1 ×1
laravel-5.2 ×1
laravel-5.3 ×1
laravel-5.6 ×1
laravel-5.7 ×1
laravel-mix ×1
sass ×1
vue.js ×1