对于传参的方式,Laravel框架给予了多种不同方式来处理,大体可分为两类:
(1)、在返回视图里传参,如:return view('xxx',$data);
(2)、外部传参;如:return view('xxx')->with('_data', $data);
具体使用方式如下:
1、在view方法里传参,具体场景:
(1)、数据量大,不适合外部with方法链式操作的方法;
(2)、代码量需求小的情况;
具体实现方式:
首先创建一个拥有字符串和数组等数据格式的方法,方便使用;
public function index(){
$_item = 'food';
$_price = '100';
$_data = [
'name' => 'faceless',
'sex' => 'faleman',
];
$_info = 'other info';
}
(1)、return view('test_laravel',$_item);
在test_laravel.blade.php模板里使用原生方式写入:
<?php echo $_item;?>
(2)、return view('test_laravel',$_data);
<?php echo $name;?>
(3)、return view('test_laravel',compact('_data','_price'));
<?php echo $_data['name']; echo $_price;?>
//相信你能看出来,compat方法支持数组和单个字符串变量同时注入的方式,且注意,用compat方法注入的数组一定要规范的使用$_data['name']数组写法来输出。
2、在view外传参(即使用with()方法传参),具体场景:
(1)、在数据量不大的场景;
(2)、在只需完成功能无需规范和代码清晰的场景;
具体实现方式:
return view('test_laravel')->with('data',$_data)->with('item',$_item);
在视图中实现这些变量:
<?php echo $data['sex'];
echo $item;
?>
可以看到,在view方法外注入变量,只能指向方法的方式来完成。且with()方法不支持数组内元素的字符串写法(如直接在模板中使用:$sex),即一定要使用$_data['sex']的数组写法;