Php LaravelBlade-html块的自定义方法?
是否可以创建自己的刀片方法/标签,或者解决方案是什么 例如,在刀片文件中,它将包含多个Php LaravelBlade-html块的自定义方法?,php,laravel,laravel-5,laravel-blade,Php,Laravel,Laravel 5,Laravel Blade,是否可以创建自己的刀片方法/标签,或者解决方案是什么 例如,在刀片文件中,它将包含多个表单块块,如下所示: <section class="container-fluid container-fixed-lg form-block"> <div class="row b-b b-grey"> <div class="col-xs-12 col-md-3 m-r-35"> <h2>Title</h
表单块
块,如下所示:
<section class="container-fluid container-fixed-lg form-block">
<div class="row b-b b-grey">
<div class="col-xs-12 col-md-3 m-r-35">
<h2>Title</h2>
<p>Some content here</p>
</div>
<div class="col-xs-12 col-md-7">
<div class="panel panel-default">
<div class="panel-body">
// Custom Block Here
</div>
</div>
</div>
</div>
</section>
你可以写你自己的刀片做任何你想做的事
您的示例看起来像是在尝试生成表单。这可能会有帮助。它是在Laravel 5中删除的表单/html生成器,现在社区支持它。您可以在blade中编写自己的表单来做任何您想做的事情
您的示例看起来像是在尝试生成表单。这可能会有帮助。它是在Laravel 5中删除的表单/html生成器,现在社区支持它。自定义刀片指令,正如它们所称,编写起来有点脏,因为您必须返回一个包含html的字符串,可能还要返回将要运行的PHP代码。更糟糕的是,您没有单独获取参数,只获取一个字符串,如
“('Title','somecontent')”
,作为指令的输入。我刚刚发现的一个技巧是,可以使用数组语法来分隔参数
Blade::directive('formblock', function ($expression) {
return '
<section class="container-fluid container-fixed-lg form-block">
<div class="row b-b b-grey">
<div class="col-xs-12 col-md-3 m-r-35">
<h2><?=array' . $expression . '[0];?></h2>
<p><?=array' . $expression . '[1];?></p>
</div>
<div class="col-xs-12 col-md-7">
<div class="panel panel-default">
<div class="panel-body">
';
});
Blade::directive('endformblock', function () {
return '
</div>
</div>
</div>
</div>
</section>
';
});
然后在
views/partials/form_block\u start.blade.php
和views/partials/form_block\u end.blade.php
中创建这两个文件。在第一种方法中,您可以仅使用标题和内容作为变量$title
和$content
。有关更多信息,请参阅。自定义刀片指令(称为)编写起来有点脏,因为您必须返回一个包含HTML的字符串,可能还要返回将要运行的PHP代码。更糟糕的是,您没有单独获取参数,只获取一个字符串,如“('Title','somecontent')”
,作为指令的输入。我刚刚发现的一个技巧是,可以使用数组语法来分隔参数
Blade::directive('formblock', function ($expression) {
return '
<section class="container-fluid container-fixed-lg form-block">
<div class="row b-b b-grey">
<div class="col-xs-12 col-md-3 m-r-35">
<h2><?=array' . $expression . '[0];?></h2>
<p><?=array' . $expression . '[1];?></p>
</div>
<div class="col-xs-12 col-md-7">
<div class="panel panel-default">
<div class="panel-body">
';
});
Blade::directive('endformblock', function () {
return '
</div>
</div>
</div>
</div>
</section>
';
});
然后在
views/partials/form_block\u start.blade.php
和views/partials/form_block\u end.blade.php
中创建这两个文件。在第一种方法中,您可以仅使用标题和内容作为变量$title
和$content
。有关更多信息,请参阅。我在问题中没有看到表单的任何用法。他的blade指令在blade文件中称为form block
,其中包含许多form block
,在面板体中
block将包含许多html输入。我认为您可以通过提供自定义指令的示例来改进您的答案。我在问题中没有看到表单的任何用法。他的blade指令在blade文件中称为form block
,其中包含许多form block
,在面板主体中block将包含许多html输入。我认为您可以通过提供自定义指令的示例来改进您的答案。谢谢!如果你要为你的项目做类似的事情,你会怎么做?我想我会在@include
指令中使用partials。检查我的更新答案!哦,太棒了,我从来不知道@include支持参数。我肯定会用这个。谢谢没问题!你想退房谢谢!如果你要为你的项目做类似的事情,你会怎么做?我想我会在@include
指令中使用partials。检查我的更新答案!哦,太棒了,我从来不知道@include支持参数。我肯定会用这个。谢谢没问题!你想退房吗
@include('partials.form_block_start', ['title' => 'My Title', 'content' => 'The extra content..']);
Main content...
@include('partials.form_block_end');