laravel框架
- laravel是基于mvc模式的php框架,m——模型层,v——视图层,c——控制器层;以下为laravel框架的目录文件,框出来的文件目录将在后续中用到:
2、laravel路由
简介
laravel中请求类型包括:get、post、put、patch、delete。
前面说了route.php是laravel的路由文件,所有的路由映射都要通过编辑route.php文件进行代码书写。
3. 路由学习
1、基本路由
get请求:
<?php
//基本路由的get请求
Route::get('get_base', function(){
return 'get request base';
});
浏览器输入:http://127.0.0.1/laravel/public/get_base
页面输出:get request base
post请求:
<?php
//基本路由的post请求
Route::post('post_base', function(){
return 'post request base';
});
以上路由需要通过post方式请求,这里不做演示
请求后页面输出:post request base
Route::get(‘/浏览器访问的地址名’,‘控制器所在文件地址@调用控制器里定义的方法’)
Route::post(‘/浏览器访问的地址名’,‘控制器所在文件地址@调用控制器里定义的方法’)
传参中怎么传递怎么接受
Route::get(‘/浏览器访问的地址名/{传递的参数}’,‘控制器所在文件地址@调用控制器里定义的方法’)
4.控制器
控制器目录app/Http/Controller,此目录下有一个基本的控制器Controller,新增的控制器统一继承此Controller;
命名空间:namespce App\Http\Controller;
命名规则:控制器文件名跟类名统一首字母大写,以 控制器名+Controller 为命名规则,比如新建一个控制器 :AdminController.php
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2018/8/25/025
* Time: 0:51
*/
namespace App\Http\Controllers;
class AdminController extends Controller
{
public function index()
{
return view('admin/index');
}
}
新建控制器AdminController继承于基类Controller
5.随便写一个控制器,控制器中有几个成员方法怎么写
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use \App\Models\Post;
class PostController extends Controller
{
//
public function index()
{
$mdoel = Post::orderby('id', 'desc')->get();
return view('post.index', ["posts" => $mdoel]);
}
}
6、用命令生成控制器的cmd命令
php artisan make: controller(控制器文件) PostController创建的控制器名
7、用命令生成模型
php artisan make:model(模型文件) Post(创建的模型名)
8、请求的发生和获取
public function store()
{
$title = request('title'); (请求)
$content = request('content'); (请求)
//创建post模型类的对象
$model = new Post(); (获取)
$model->title = $title;
$model->content = $content;
$res = $model->save();
if ($res) {
return redirect('/posts');
}
}
10启动laravel本地服务器命令
php artisan serv
小小总结
1.请求类型
get , put , post , patch , delete 等
2.路由访问方式
get , post , any , match([‘get’,post])
3.路由传参
Route::get(‘user/{id}’ ,function (
i
d
)
)
;
R
o
u
t
e
:
:
g
e
t
(
′
u
s
e
r
/
n
a
m
e
/
i
d
′
,
f
u
n
c
t
i
o
n
(
id){ }); Route::get('user/{name}/{id}',function(
id));Route::get(′user/name/id′,function(name,
i
d
)
)
;
4.
传
递
可
选
参
数
R
o
u
t
e
:
:
g
e
t
(
′
u
s
e
r
/
n
a
m
e
?
′
,
f
u
n
c
t
i
o
n
(
id){ }); 4.传递可选参数 Route::get('user/{name?}',function(
id));4.传递可选参数Route::get(′user/name?′,function(name = value){
});
5.参数限制
Route::get(‘user/{name}’,function(){})->where(‘name’,’[A-Za-z] + ‘);
Route::get(‘user/{id}/{name}’,function([‘id’=>’[0-9]+’,‘name’=>’[a-z]+’]));
6.模版中的写法
<?php echo $title; ?>
{{$msg}}
7.创建数据库 create database 库名 charset utf8 8.``迁移文件操作up()负责建表,加列,加索引
down()负责删表,减列,去索引
public function up(){
Schema::table('goods',function(Blueprint $table){
添加
$table->char('email',50);
});
Schema::table('goods',function ($table{
删除
$table->dropColumn('email');
}));
}
9.select查找
DB::table('goods')->get();
DB::table('goods')->where('id','>',6)->get();
DB::table('goods')->select('id','email')->where()->get();
DB::table('goods')->where('id',6)->first();
10.增加
$msg->save();
11.查找
Msg::find($id);
按where 条件查找具体的那一条
Msg::where('id','>',3)->first();
查找多行all() 和 get()
12.复杂查询
asc 升序 desc 降序
orderBy('id','desc') 根据id排序
Msg::count();数数
Msg::avg('id');求平均值
Msg::min('id');最小值最大值
Msg::sum('id');求和
13.文件上传
Route::get('msg/fil','MsgController@fil');
Route::post('msg/ups','MsgController@ups');
控制器
public function fil(){
return view('msg.fil');
}
public function ups(){
$req->file()->move('上传文件地址',为文件起的名字);
}
判断文件上传是否成功
isvalid();即实例变量的值是否是个有效的对象句柄
hasFile();属性获取一个值,该值指示 FileUpload 控件是否包含要上载的文件。 在对要上载的文件执行操作之前,使用该属性来验证该文件是否存在
14.表单类型
primary (key) 主键值
string 字符串
enum 选择(‘男’,‘女’)
integer 整形
tinyint 整形(占一个字节)
int 整形(占四个字节)
auto_increment 属性自增
rememberToken() laravel 中记录用户cookie