Laravel 4.将参数传递给partial

时间:2014-08-08 18:44:43

标签: parameters laravel-4 partials

我正在与Laravel 4建立销售支持系统。我有一个用于记录项目的表单和另一个用于保存销售说明的表单。在那里,我想让用户添加一个新项目,而不必离开新项目表单的创建销售票据表单。我有一个部分用于创建项目表单,我在创建项目的常规方式和创建销售说明中使用的方法中使用。在后一种情况下,除了提交按钮之外,我还需要显示一个取消按钮,所以我打算将一个参数传递给我的表格部分,告诉他们是否需要取消按钮,如下所示:

项目/ create.blade.php:

@include("partials.NewProjectForm", array("cancel" => "no"))

salesnotes / create.blade.php:

@include("partials.NewProjectForm", array("cancel" => "yes"))

分音/ NewProjectForm.blade.php:

@if($cancel == "yes")
  {{ Form::button("Cancel") }}
@endif

在" no"如果是,则部分接收到预期的传递变量,在"是"然而,它会抛出"未定义的变量:取消"错误。我也尝试过使用带有()的View :: make() - >部分,以及相同的结果。那里出了什么问题?

感谢。

2 个答案:

答案 0 :(得分:2)

This answer最终会提到你需要的东西。诀窍是使用不同的方法来渲染部分。

假设您在包含名为header.blade.php的文件的视图下有一个partials目录,请添加以下行以查看要从中呈现部分的脚本:

{{ View::make('partials.blog.header', array('title' => 'test'))  }}

如果你在header.blade.php中添加以下行,你会看到'test'已经传递给你的部分,你的部分已被渲染。

{{ $title }}

希望有所帮助! (当我第一次碰到它时,我也对此感到困惑......)

答案 1 :(得分:0)

你的代码没问题......这个错误可能是由对“部分”的不同调用引起的,该调用已经取消了'拼错或丢失。也许是错误的' salesnotes / create.blade.php'已部署,或“销售说明”'路线指向不同的页面,其中包括部分而不设置“取消”。变量?

BTW - 这并不能解决您的问题 - 但如果您要创建通用部分,请在检查$ cancel的值之前建议添加isset($ cancel)检查。