php - data in included views in laravel -
in laravel app passing variable $data view later include in view. in controller method have
public function random($id){ $data = db::table('reports')->where('id',$id); return view('partials.data', compact('data')); } in partials.data have:
{!! 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 $dat) <tr>{{$dat->month}}</tr> <tr>{{$dat->value}}</tr> @endforeach </tbody> </table> {!! form::close() !!} and @ main view have function:
function kpi_values(d) { // `d` original data object row kpi = d.id; return '@include("reports.data", array("id" => "kpi"))'; } which triggered by:
$('#monthly_table tbody').on('click', 'td.details-controls', function () { var tr = $(this).closest('tr'); var row = table.row(tr); if (row.child.isshown()) { // row open - close row.child.hide(); tr.removeclass('shown'); } else { row.child(kpi_values(row.data())).show(); tr.addclass('shown'); } }); when run following error:
errorexception in 3534c4c98c65c2d5267bf7c54a960d41 line 13: undefined variable: data i have passed variable data in partial view, seems requires in primary view. there way of doing without passing variable primary view? don't want mix things because partial view controller method requires parameter, while primary view has no parameters in it.
all appreciated
laravel offers great tool handle situation in need pass parameters partial views without passing through primary view. view composer. here example :
in \app\providers\appserviceprovider.php file public function boot() { //get data , pass partials.data whenever partials.data executed view()->composer('partials.data',function($view){ $view->with('data',dataset::all()); }); } for more advanced, can learn laracast
Comments
Post a Comment