标签: laravel-blade

如何在Laravel 5.3中获取视图中的当前区域设置

我正在制作一个双语应用程序.我为每个使用相同的路由,但我对两种语言使用不同的视图.每当我想重定向到我想要通过的路线时{{ route('test.route', 'en') }}.在我传递的地方en,我想从视图中获取当前的语言环境值,然后将其传递给路径.请帮忙.

laravel blade laravel-blade laravel-5.3

13
推荐指数
2
解决办法
2万
查看次数

Laravel Blade - 链/嵌入多种布局

在我最喜欢的模板框架中,它们通常具有嵌套布局的能力.Blade中有可能出现这种情况吗?

例如...

master.blade.php

<html>
  <head><!-- stuff --></head>
  <body>
    @yield('content')
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

nav.blade.php

@extend('master')
<nav>
    <!-- nav content -->
</nav>
@yeild('content')
Run Code Online (Sandbox Code Playgroud)

breadcrumb.blade.php

@extend('nav')
<breadcrumb>
    <!-- breadcrumb content -->
</breadcrumb>
@yield('content')
Run Code Online (Sandbox Code Playgroud)

home.blade.php

@extend('nav')
@section('content')
    <home>
        <!-- content -->
    </home>
@endsection
Run Code Online (Sandbox Code Playgroud)

about.blade.php

@extend('breadcrumb')
@section('content')
    <about>
        <!-- content -->
    </about>
@endsection
Run Code Online (Sandbox Code Playgroud)

我喜欢这种格式的原因是它能够选择你的注射点使它非常优雅(IMO)!

  • 有一个登陆页面...参考大师
  • 对于主页...参考导航
  • 对于任何子页面(关于/ nav/product)引用breadcrumb

布局级联并'content'在编译时html随着树一样重建.

这可能吗?我希望避免@include在布局中做,因为我个人发现它们很麻烦,有点眼睛酸痛,特别是当你得到经常重复的元素,但不是到处都是(面包屑).

编辑:根据答案.

理想情况下,'content'将重建并传递嵌套布局链.即如果您有引用nav.blade.php主页内容的主页,则会将其添加到导航布局并进行编译.然后,由于导航布局引用master.blade.php已编译的布局将被传递到master并再次构建.没有重复任何内容.

laravel blade laravel-blade laravel-5.4

13
推荐指数
2
解决办法
1001
查看次数

在刀片中使用刀片

在我的数据库中,我保存包含刀片标记的文本,如:

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)

这样用户可以使用[名称],我仍然想知道如何仅使用刀片.

php laravel-blade

11
推荐指数
1
解决办法
596
查看次数

使用Blade获取Laravel 5中当前URL的最后一部分

如何动态获取当前URL的最后一部分没有'/'?

例如:

www.news.com/foo/bar
get - > bar

www.news.com/foo/bar/fun
get - >有趣

在当前视图中放置函数或如何实现它的位置?

laravel laravel-5 laravel-5.1 laravel-5.2 laravel-blade

11
推荐指数
6
解决办法
3万
查看次数

Vue.js中的Laravel类访问

我有以下类,我定义了我的最小/最大长度值:

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是一个前端框架并在客户端加载,因此无法使用上述服务器端类来保持最大最大数量集中.

请建议如何摆脱这个问题.

laravel vue.js laravel-blade laravel-5.6 laravel-5.7

11
推荐指数
1
解决办法
493
查看次数

尝试使用刀片获取foreach循环中的键

如果我使用,{{$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结果 …

php laravel blade laravel-blade

10
推荐指数
1
解决办法
4万
查看次数

资产申报中的变量

我试图使用Laravel随机化背景.我将$ background变量传递给视图,然后尝试将其作为内联样式加载.

但是,我正在努力声明资产的路径,然后一起调用变量,因为它一直出错.

我目前的代码是:

<section class="page" style="background-image: url({{ asset('img/backgrounds/{{ $background }}.jpg') }});">
Run Code Online (Sandbox Code Playgroud)

$ background是变量,我试图引用资产路径.

有没有更好/更简单的方法来做到这一点?或者我怎样才能让它发挥作用.如果需要,不要介意使用PHP代码作为替代方案.

谢谢

laravel blade laravel-4 laravel-blade

10
推荐指数
1
解决办法
7855
查看次数

具有多种角色的Laravel中间件

我一直在使用Laravel的中间件遇到一些问题.让我告诉你我想要完成的基本想法:

网站上的注册用户将具有以下四种角色之一:

  1. 学生(默认):可以访问" 索引 "和" 显示 "视图
  2. 审批人:可以访问上一个,加上" 概述 "," 更新 "
  3. 编辑:可以访问上一个,加上' 创建 ',' 编辑 '和' 存储 '
  4. 管理员:可以访问一切

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)

php laravel-middleware laravel-blade laravel-5.4

10
推荐指数
1
解决办法
2万
查看次数

Laravel 属性 [title] 在 Eloquent 构建器实例中不存在

我在尝试显示数据库中的数据时出错。这个问题是由在本网站上创建帖子的其他人发生的。但他们有一个 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)

在此处输入图片说明

php laravel laravel-blade

10
推荐指数
2
解决办法
3万
查看次数

Laravel Blade、Mix 和 SASS 资源版本共享

在我的项目中,我在 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 种不同的资源,这不是我所期望的......

潜在的解决方法 …

frontend sass laravel laravel-blade laravel-mix

10
推荐指数
1
解决办法
1555
查看次数