路由
必选参数
route中定义的{id}要和控制器的方法中传参的$id一致
Route::get('/product/item/{id}.html','Product@detail');
public function detail($id){
$res = array('id'=>$id,'title'=>'荣耀10,'price'=>2000);
return view('product.detail',['product'=>$res]);
}
可选参数
在控制器的方法中要有个默认值
Route::get('/product/item/{id?}','Product@detail');
public function detail($id=2){
$res = array('id'=>$id,'title'=>'荣耀10,'price'=>2000);
return view('product.detail',['product'=>$res]);
}
命名路由
Route::get('/product/item/{id?}','Product@detail')->name('product_item');
视图blade引擎流程控制
@foreach
public function detail($id=2){
$res[0] = array('id'=>2,'title'=>'荣耀10,'price'=>2000);
$res[1] = array('id'=>5,'title'=>'iphone11,'price'=>8000);
$res[2] = array('id'=>8,'title'=>'iphone12,'price'=>18000);
return view('product.detail',['product'=>$res]);
}
@foreach($product as $item)
商品名称:{{$item['title']}}
@endforeach
@if
@foreach($product as $item)
@if($item['price']<3000)
商品名称:{{$item['title']}}
@endif
@endforeach
@else
@foreach($product as $item)
@if($item['price']<3000)
商品名称:{{$item['title']}}
@else
{{$item['title']}}买不起
@endif
@endforeach
@elseif
@foreach($product as $item)
@if($item['price']<3000)
商品名称:{{$item['title']}}
@elseif($item['price']>3000 && $item['price']<10000)
买{{$item['title']}}有压力
@else
{{$item['title']}}买不起
@endif
@endforeach
@while
<?php
$i = 0;
$count = count($product);
?>
@while($i<$count)
{{$product[$i]['title']}}
<?php $i++;?>
$endwhile
原生数据库操作
select
注意应用DB类,查询出来的是一个二维数组,返回结果集use Illuminate\Support\Facades\DB;
public function detail(){
$res = DB::select('select * from product where id>?',[2]);
//$res = DB::select("select * from product where id>:id",['id'=>2]);
echo '<pre>';
print_r($res);
return view('product.detail');
}
insert
返回bool值
$res = DB::insert('insert into product(`pname`,`price`) values ("iphone12",20000)');
update
返回受该语句影响的行数
$res = DB::update('update product set pname="荣耀10",price=3000 where id=10');
delete
返回受该语句影响的行数
$res = DB::delete('delete from product where pname="iphone12"');
查询构造器
查询
只要查询的结果集是 Collection
类型,就可以在后面加toArray()方法。返回的每个数组是一个对象,从对象中取值用->
echo '<pre>';
$res = DB::table('product')->get()->toArray();
foreach($res as $item){
echo $item->pname.'<br>';
}
where条件
在获取结果集之前(get()),在table之后,在这2者之间
where中2个参数默认是 =
echo '<pre>';
$res = DB::table('product')->where('id',2)->get()->toArray();
// $res = DB::table('product')->where('id','>',2)->get()->toArray();
var_dump($res);