Laravel框架具有目前大部分框架都具有的共同特点:
单入口。为了让框架统一管理所有的请求,整个项目对外只提供一个入口
MVC开发模式。利用MVC可以更好地协同开发,为后期的维护提供方便
ORM(对象关系映射)方式操作数据库,支持AR(活动记录)模式
路由
需要在routes/web.php文件中配置,定义方式:
Route::get('/hello',function)(){
return 'hello';
});//返回页面用view
//同时匹配get和post请求方式
Route::match(['get','post'],'test',function(){
return '通过match()匹配';
});//matchh后是数组(【get,post】)之后是参数
//匹配任意请求方式
Route::any('test2',function(){
return '通过any()匹配'
});
//传递动态参数
Route::get('find/{id}',function($id){
return 'id为',$id;
)};
//传递可选动态参数
Route::get('find/{id?}',function($id=0){
return 'id为',$id;
)};
//路由分组
Route::group(['prefix=>'admin''],'function(){
Route::get('login',function)(){
return '这里是/admin/login';
});
Route::get('logout',function)(){
return '这里是/admin/logout';
});
Route::get('use/add',function)(){
return '这里是/admin/use/add';
});
});
如果使用路由群组,可以通过在路由群组的属性数组中指定as关键字来为群组设置一个公用的路由名前缀:
Route::group(['as'=>'admin;;''],'function(){
Route::get('login',['as'=>'login' ] function(){
return '这里是/admin::login';
});
});
控制器:
cmd进入Laravel根目录:
php artisan make:controller 控制器名字//artisan能在文件找到相当于一个方法
新建控制文件:TestController
lass TestController extends Controller
{
public function index()
{
echo "<h1>Hello world</h1>";
}
}
web文件:
Route::get('test','TestController@index');
2、接受用户输入
a、给input()定义路由
Route::get('test/input','TestController@input');
c、
public function input(Request $request)
{
//调用input()方法获取数据
$name=$request->input('name');
return 'name的值'.$name;
}
使用Request实例接受路由参数:
a、修改路由定义方式,在路由中匹配name参数
Route::get('test/input/{name}','TestController@input');
b、修改input()方法
public function input(Request $request)
{
//调用input()方法获取数据
$name=$request->name;
return 'name的值'.$name;
}
接受用户输入:
Input::get(‘参数的名字','如果没传递采用该默认值)
Input;;all();//获取所有用户输入
Input::get(‘’)//获取单个用户输入
Input::only([]);//获取指定用户输入
Input::except([]);//获取几个用户输入之外的参数
Input::has('name');//判断某个用户输入的是否存在
如果需要facedes的话可以:在app.config
‘Input’=>ILLuminate\Support\Facades\Input::class,
数据库操作:
例member表:
在config\database.php中获取环境变量
在.env文件中配置数据库参数
1、添加数据
insert()返回true或false
在colltroller中
public function() adddata()
{
$data=[
'name'=>'tom',
'age'=>22,
'email'=>'tom@Laravel.test'
];
dump(\DB::table('member')->insert($data));
//dump(\DB::table('member')->insertGetId($data));//可以返回插入的id值
}
在web中
Route::get('adddata','TestController@adddata');
修改:
public function() updatedata()
{
$data=['name'=>'tom'];//会把所有的那么换掉
dump(\DB::table('member')->update($data));
}
Route::get('update','TestController@update');
递增:increment()
dump(\DB::table('member')->increment(‘age’));//age+1
dump(\DB::table('member')->increment(‘age’,5))//member得值加上5
递减:decrement()
dump(\DB::table('member')->decrement(‘age’));//age-1
dump(\DB::table('member')->decrement(‘age’,5))//member得值-5
使用where“
dump(\DB::table('member'))->where('id','=','1')->update($data);
dump(\DB::table('member'))->where('id','1')->update($data);
dump(\DB::table('member'))->where(['id'=>1])->update($data);//支持And
dump(\DB::table('member'))->where(['id'=>1])->where(['name'=>'tom'])->update($data);
dump(\DB::table('member'))->where(['id'=>1])->orwhere(['name'=>'tom'])->update($data);
查询:
查询多行:
$data=DB::table('member')->get();
foreach($data as $v)
{
echo $v->id.'-'.$v->name.'<br>';
}
查询指定字段:
$data=DB::table('member')->get(['name','email']);//多行数据
$data=DB::table('member')->first(['name','email']);//当行数据
查询某个字段的值:
//查询id为1,返回name的值
$name=DB::table('member')->where('id','1')->value('name');
排序:
$data=DB::table('member')->where('id','1')->orderBy('age','desc ')->get();
分页:
$data=DB::table('member')->limit(3)->offset(2 )->get();
删除:
1、delete()
$res=DB::table('member')->where('id','<','3')->delete();
2、truncate
DB::table("member")->truncate();
复杂sql语句:
视图:
视图文件保存在resource\view中
文件名称.blade.php或.php结尾如果以blade结尾用了blade模板引擎
建立视图show.blade.php
在web中
Route::get('/show', function () {
return view('show');
});
或者在控制层添加
public function adddata(){
return view('show')
}
![]()
模板继承
![]()
模型:
创建:php artisan make;model 模型名
使用模型:
![]()
使用模型添加数据:
![]()
![]()
![]()
![]()
![]()