Parameters 拉威尔4。将参数传递给部分

Parameters 拉威尔4。将参数传递给部分,parameters,laravel-4,partials,Parameters,Laravel 4,Partials,我正在用Laravel 4制作一个销售支持系统。我有一个记录项目的表格和另一个保存销售记录的表格。在这里,我希望使用户能够添加新项目,而不必为新项目表单保留创建销售记录表单。我有一个创建项目表单的分部,我在创建项目的正常方式和创建销售说明中都使用了分部。在后一种情况下,除了submit按钮外,我还需要显示cancel按钮,因此我打算向我的form partial传递一个参数,以告知是否需要cancel按钮,如下所示: projects/create.blade.php: @include("pa

我正在用Laravel 4制作一个销售支持系统。我有一个记录项目的表格和另一个保存销售记录的表格。在这里,我希望使用户能够添加新项目,而不必为新项目表单保留创建销售记录表单。我有一个创建项目表单的分部,我在创建项目的正常方式和创建销售说明中都使用了分部。在后一种情况下,除了submit按钮外,我还需要显示cancel按钮,因此我打算向我的form partial传递一个参数,以告知是否需要cancel按钮,如下所示:

projects/create.blade.php:

@include("partials.NewProjectForm", array("cancel" => "no"))
@include("partials.NewProjectForm", array("cancel" => "yes"))
@if($cancel == "yes")
  {{ Form::button("Cancel") }}
@endif
salesnotes/create.blade.php:

@include("partials.NewProjectForm", array("cancel" => "no"))
@include("partials.NewProjectForm", array("cancel" => "yes"))
@if($cancel == "yes")
  {{ Form::button("Cancel") }}
@endif
partials/NewProjectForm.blade.php:

@include("partials.NewProjectForm", array("cancel" => "no"))
@include("partials.NewProjectForm", array("cancel" => "yes"))
@if($cancel == "yes")
  {{ Form::button("Cancel") }}
@endif
在“否”的情况下,分部按预期接收传递的变量,但在“是”的情况下,分部抛出“未定义变量:取消”错误。我也尝试过使用View::make()->with()包含部分内容,结果相同。那里怎么了

谢谢。

最后提到了你需要什么。诀窍是使用不同的方法渲染局部图像

假设在视图下有一个partials目录,其中包含一个名为header.blade.php的文件,请将以下行添加到要从中渲染部分的视图脚本中:

{{ View::make('partials.blog.header', array('title' => 'test'))  }}
如果在header.blade.php中放置以下行,您将看到“test”已传递给您的partial,并且您的partial已呈现

{{ $title }}

希望有帮助!(当我第一次遇到它时,我也对此感到困惑…

您的代码很好。。。该错误可能是由于对“取消”拼写错误或丢失的分部的不同调用造成的。可能是部署了错误的“salessnotes/create.blade.php”,或者“salessnote”路由指向包含部分内容的其他页面,而没有设置“cancel”变量


顺便说一句-这并不能解决您的问题-但是如果您正在创建一个通用部分,建议在检查$cancel的值之前添加一个isset($cancel)检查。

谢谢丢失的哲学家,谢谢perNalin!我最终找到了一种完全不同但成功的方法,忘记了将变量传递给partials:我只是根据上下文通过ajax调用将表单加载到相应的div中,并使用javascript处理它们。