欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

给blade php 模板变量赋值 怎么实现 视图模板里面 执行 php 代码 有大用

shiping1 的头像

<?php $foo = bar() ?>


{{--**/ $foo = bar() /*--}}


Blade::extend(function($value){

        return preg_replace('//@define(.+)/','<?php ${1};?>',$value);

});





请问 提取 blade.php 的内容过来赋给变量 而不输出 用什么方法

一种类似于smarty->fetch的方法
怎么实现

然后 在 控制器中使用这个变量

<?php $foo = 'bar' ?>

我的本意 是通过 控制器 里  
$content = file_get_content(别人的网址) ;
$content .="自己的一些html代码";
然后 saveFile('保存为我的服务器上的文件',$content);

我的本意 是通过 控制器 里  
$content = file_get_content(别人的网址) ;
$content .="自己的一些html代码";
然后 saveFile('保存为我的服务器上的文件',$content);

Blade::extend(function($value) {
    return preg_replace('/\{\?(.+)\?\}/', '<?php ${1} ?>', $value);
});


\File::get('foo.blade.php')


恩,另外的办法就是拓展blade了
史文仲远(958186957) 11:21:23
?如何  从控制器 传变量 到 foo.blade.php
笑年郎(870867624) 11:22:12
其实用{{ isset($foo) or bar }} 似乎也是可以赋值的
史文仲远(958186957) 11:22:19
像 views('blade.php')->with()这种形式
史文仲远(958186957) 11:22:24
传变量
史文仲远(958186957) 11:22:53
或者 发个 url  让我研究下 也行 

BinBoKami(512469492) 11:23:13
 那个。。
BinBoKami(512469492) 11:23:22
你没有理解 balde。。
BinBoKami(512469492) 11:23:29
blade 他不是一个实例。
BinBoKami(512469492) 11:23:33
只能运行一次。
BinBoKami(512469492) 11:23:42
他没有办法保存成一个实例你调用
笑年郎(870867624) 11:23:48
好吧
BinBoKami(512469492) 11:23:52
也就是说不管你赋值了多少变量
笑年郎(870867624) 11:24:11
执行后变量的引用计数都会归零
BinBoKami(512469492) 11:24:12
只要你不在那个blade模板里调用。在外面调用这个blade他都会部件。
BinBoKami(512469492) 11:24:14
不见
BinBoKami(512469492) 11:24:14
是的
BinBoKami(512469492) 11:24:31
”执行完归零“ 这个说法最简单。
笑年郎(870867624) 11:24:54
执行完销毁变量

Laravel's Blade: how can I set variables in a template?

正确答案

It is discouraged to do in a view so there is no blade tag for it. If you do want to do this in your blade view, you can either just open a php tag as you wrote it or register a new blade tag. Just an example:

<?php
/**
 * <code>
 * {? $old_section = "whatever" ?}
 * </code>
 */
Blade::extend(function($value) {
    return preg_replace('/\{\?(.+)\?\}/', '<?php ${1} ?>', $value);
});

Assigning a Variable in a Blade Template

Problem

You want to assign a variable in a Blade template.

 
 

Solution

Blade does not provide a command to do this.

 

The idea is to cleanly separate logic from presentation. But in the case where it's more expedient to assign a variable in a template, here's a couple tricks.

You can always use the PHP tags.

<?php $var = 'test'; ?>
{{ $var }}

Or, you can use a Blade comment with a special syntax.

{{--*/ $var = 'test' /*--}}
{{ $var }}

This second method works because Blade comments get translated in the format below.

<?php /*COMMENT*/ ?>

Thus, the above variable assignment gets translated to the following PHP code.

<?php /**/ $var = 'test' /**/ ?>

See Using Comments in Blade Templates.

来自 http://laravel-recipes.com/recipes/256/assigning-a-variable-in-a-blade-template


普通分类: