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');