2016-03-05 153 views
-1

我尝试在其他视图中加载视图(project_template)。 我的问题是,我怎么能给我的$ project变量到'project_template'视图,我在“View:make”的主视图中创建了这个视图。将变量传递给其他视图

其实我使用 - >使用($项目) 但是当我尝试在我的template_view使用它,我得到一个非对象错误 我也用“紧凑”什么也没有为我工作。

在我的主视我可以使用$项目变量没有问题

查看:

@foreach($projects as $project) 
<tr class="gradeA"> 
    <td> 
    <td>{!! $project->description !!}</td> 
    <td> 
     {!! View::make('shared.tables.project_template')->with($project)->render() !!} 
    </td> 
</tr> 
@endforeach 

Project_Template - 视图:

{!! $project->project_name !!} 

错误 - 消息

ErrorException in 0f9dcdc70fd0be3b50d7a39ad7bc90d7 line 4: 
Trying to get property of non-object 

谢谢f或帮助!

+0

laravel?刀片不能使用View :: make。 – WeiYuan

回答

1

改成这样:

@foreach($projects as $project) 
<tr class="gradeA"> 
    <td> 
    <td>{!! $project->description !!}</td> 
    <td> 
     @include('shared.tables.project_template') 
    </td> 
</tr> 
@endforeach 
+0

谢谢,但问题是,我需要将值传递给名为$ project的子视图(project_template)。 – Luca

+1

只需在你的子视图中使用该变量,它将在那里可用。当你包含一个像我所展示的视图时,该变量($ project)将在父视图的作用域中。所以试试这个,它会起作用。没有其他改变 –

+0

哦,这么容易:)非常感谢,我花了很多时间在这个问题上... – Luca

0

只需使用@include(viewName, [data])

这意味着,你的情况:

@include('shared.tables.project_template', ['project' => $project])