xhu*_*lio 5 php laravel laravel-5
在我的laravel应用中,我正在将变量$ data传递给一个视图,稍后将在另一个视图中包含它。因此,在我的控制器方法中,我有:
public function random($id){
$data = DB::table('reports')->where('id',$id);
return view('partials.data', compact('data'));
}
Run Code Online (Sandbox Code Playgroud)
在partials.data我有:
{!! Form::open(['url'=>'reports/data',$id]) !!}
<table class="table table-responsive table-condensed table-bordered tab-content">
<thead>
<tr>
<th>Month</th>
<th>Value</th>
</tr>
</thead>
<tbody>
@foreach($data as $dat)
<tr>{{$dat->month}}</tr>
<tr>{{$dat->value}}</tr>
@endforeach
</tbody>
</table>
{!! Form::close() !!}
Run Code Online (Sandbox Code Playgroud)
在主视图中,我具有以下功能:
function kpi_values(d) {
// `d` is the original data object for the row
kpi = d.id;
return '@include("reports.data", array("id" => "kpi"))';
}
Run Code Online (Sandbox Code Playgroud)
由以下哪个触发?
$('#monthly_table tbody').on('click', 'td.details-controls', function () {
var tr = $(this).closest('tr');
var row = table.row(tr);
if (row.child.isShown()) {
// This row is already open - close it
row.child.hide();
tr.removeClass('shown');
}
else {
row.child(kpi_values(row.data())).show();
tr.addClass('shown');
}
});
Run Code Online (Sandbox Code Playgroud)
运行此命令时,出现以下错误:
ErrorException in 3534c4c98c65c2d5267bf7c54a960d41 line 13:
Undefined variable: data
Run Code Online (Sandbox Code Playgroud)
我已经在局部视图中传递了变量数据,但是,似乎在主视图中需要它。
没有将变量传递到主视图,有什么办法吗?我不想混淆所有事情,因为局部视图控制器方法需要一个参数,而主视图中没有参数。
Laravel 提供了一个很好的工具来处理这种情况,在这种情况下我们需要将一些参数传递给部分视图而不通过主视图。那就是视图作曲家。这是一个例子:
In \App\Providers\AppServiceProvider.php file
public function boot()
{
//get data and pass it to partials.data whenever partials.data is executed
view()->composer('partials.data',function($view){
$view->with('data',DataSet::all());
});
}
Run Code Online (Sandbox Code Playgroud)
更高级的可以去Laracast学习
| 归档时间: |
|
| 查看次数: |
464 次 |
| 最近记录: |