Laravel5入门
2016-03-29 17:52
761 查看
Laravel框架的安装见[windows下安装Laravel5]
1.Laravel路由
大多数路由都将在 app/Http/routes.php 中定义,大多数基本的 Laravel 路由都只接受一个 URI 和 一个 闭包(Closure) 参数。
2.返回视图
视图文件在resources/views/welcome.blade.php
返回控制器的某个视图
3.定义路由
4.创建控制器
5.创建模型
6.操作migration
8.关联关系
基本可以分为:一对一、一对多及多对多
当然也可以指定关联字段
视图层调用:$model->getCategory;返回一个查询对象object
9.外键
新建migration迁移文件,添加字段和外键
10.密码处理
用户密码必须要进行加密操作,bcrypt() 方法也可以用 Hash::make() 来替代
11.表单验证
1.自定义验证类
生成文件位于 app\Http\Requests\ 下类里面有两个方法: authorize() 和 rules(),authorize() 方法验证用户是否有权限执行此FormRequest 类或者方法.
另外是rules()方法
2.调用validator()方法
控制器中调用
12.表单模型绑定
表单模型绑定
13.中间件 middleware
中间件文件位于 app/Http/Middleware/ 目录下
可以通过app/Http/Kernel.php 注册中间件,每一个请求都要执行的添加到 $middleware中,而只在特殊位置需要的添加到$routeMiddleware 中。
自定义中间件步骤:
例如:
14.简单权限控制
控制器中使用中间件,可以在路由文件中指定middleware,也可以在控制器的构造函数中指定。
15.flash messaging
Session::flash() 方法是暂存数据的一种方法,它只在下次请求的时候有效。也就是说下次请求完成之后,该数据即消失。
16.请求 Request
17.引入身份验证类Auth
18.数据查询
1.Laravel路由
大多数路由都将在 app/Http/routes.php 中定义,大多数基本的 Laravel 路由都只接受一个 URI 和 一个 闭包(Closure) 参数。
Route::get('/','WelcomeController@index') Route: 声明一个路由; get:即定义一个GET路由,除get外,还有post、put、delete路由; /:即指向网站 WelcomeController@index:前面是控制器,后面是调用控制器中的方法
2.返回视图
视图文件在resources/views/welcome.blade.php
public function index(){ return view('welcome');//显示welcome视图 }
返回控制器的某个视图
return view('pages.index'); return view('pages/index');
3.定义路由
//单项定义 Route::get('/contact','WelcomeController@contact'); //统一定义(resource),会生成7中restful风格的action Route::resource('articles', 'ArticlesController'); //子文件夹路由 Route::resource('admin/user', 'admin\UserController');
4.创建控制器
php artisan make:controller PagesController 在app/Http/Controllers/下生成文件,同时生成方法index()、create()、store()、show($id)、edit($id)、update($id)及destroy($id) //不生成方法 php artisan make:controller PagesController --plain //在某个文件夹下生成控制器 php artisan make:controller admin/PagesController
5.创建模型
//在app/下生成User.php php artisan make:model User /* *修改模型目录,注意namespace *在app/Models/下生成对应文件 */ php artisan make:model Models/User //注意设置 protected $fillable = [表字段];
6.操作migration
php artisan make:migration create_users_table //参数 --create=users, 生成一个新表 --table=users,更新表结构 生成目录,database/migrations/ //执行migration php artisan migrate //回滚上一个migration php artisan migrate:rollback //执行回滚所有迁移 php artisan migrate:reset //执行回滚所有迁移并重新执行 php artisan migrate:refresh
8.关联关系
基本可以分为:一对一、一对多及多对多
public function articles(){ //这是一个hasMany关联关系 return $this->hasMany('App\Article'); } //这是一个hasOne关联关系 public function user(){ return $this->belongsTo('App\User'); }
当然也可以指定关联字段
public function getCategory(){ return $this->hasOne('App\Models\Category','id','category_id');}
视图层调用:$model->getCategory;返回一个查询对象object
9.外键
新建migration迁移文件,添加字段和外键
//添加外键,做级联删除 $table->foreign('user_id') ->references('id') ->on('users') ->onDelete('cascade'); });
10.密码处理
用户密码必须要进行加密操作,bcrypt() 方法也可以用 Hash::make() 来替代
11.表单验证
1.自定义验证类
php artisan make:request UpdateUPostRequest
生成文件位于 app\Http\Requests\ 下类里面有两个方法: authorize() 和 rules(),authorize() 方法验证用户是否有权限执行此FormRequest 类或者方法.
另外是rules()方法
publicfunction rules() { return[ 'title'=>'required|min:3', 'content'=>'required', ]; } //使用方法: publicfunction store(UpdatePostRequest $request){ Article::create($request->all()); return redirect('articles'); }
2.调用validator()方法
控制器中调用
$this->validate($request,['title'=>'required|unique|max:255','body'=>'required',]);
12.表单模型绑定
表单模型绑定
{!!Form::model($article,['method'=>'PATCH','action'=>['ArticlesController@update', $article->id]])!!}
13.中间件 middleware
中间件文件位于 app/Http/Middleware/ 目录下
可以通过app/Http/Kernel.php 注册中间件,每一个请求都要执行的添加到 $middleware中,而只在特殊位置需要的添加到$routeMiddleware 中。
自定义中间件步骤:
1. php artisan make:middelware Demo 2. 在目录下app/Http/Middleware/下打开Demo.php,修改handle()函数 3. 在app/Http/Kernel.php中注册Demo中间件,注意,如果每一个请求都要执行该中间件,注册在$middleware, 特殊的注册在 $routeMiddleware.
例如:
public function handle($request, Closure $next) {< fc86 /span> if($request->is('articles/create') && $request->has('foo')){ return redirect('articles'); } return $next($request); }
14.简单权限控制
控制器中使用中间件,可以在路由文件中指定middleware,也可以在控制器的构造函数中指定。
Route::get('profile',['middleware'=>'auth','uses'=>'UserController@showProfile' ]); 或者 public function __construct(){ //除了主页之外 $this->middleware('auth', ['except' => ['index','show']]); //只有发布页 //$this->middleware('auth', ['only' => 'create']); }
15.flash messaging
Session::flash() 方法是暂存数据的一种方法,它只在下次请求的时候有效。也就是说下次请求完成之后,该数据即消失。
\Session::flash('success','文章发布成功'); //在布局文件中判断和显示 @if(Session::has('success')) <div class="alert alert-success">{{Session::get('success')}}</div> @endif @if(Session::has('success')) <div style='width:100%; background:#CCFFCC' class="alert alter-success">{{Session::get('success')}}</div> @endif //引入jQuery CDN后,设置显示时间 <script type="text/javascript"> $('div.alert').not('.alert-important').delay(3000).slideUp(300); </script> //文件重用 在views文件夹下新建 partials文件夹,创建 flash.blade.php @if(Session::has('success')) <div style='width:100%; background:#CCFFCC; text-align:center;' class="alert alter-success">{{Session::get('success')}}</div> @endif 在main.blade.php中引入即可,@include('partials.flash') 另一种方法是composer require laracasts/flash 还可以使用 Bootstrap 的 modal() 方法
16.请求 Request
use Request; $name = Request::input('name'); //依赖注入,获取请求实例 public function store (Request $request){$name=$request->input('name'); // } //取得特定输入数据,若没有则取得默认值 $name = Request::input('name','Sally'); //确认是否有输入数据 if(Request::has('name')){ //} //取得所有发出请求时传入的输入数据 $input=Request::all(); //取得部分发出请求时传入的输入数据 $input=Request::only('username','password');$input=Request::except('credit_card'); //如果是「数组」形式的输入数据,可以使用「点」语法取得数组: $input=Request::input('products.0.name');
17.引入身份验证类Auth
user Auth; 当前用户 Auth::user()->id;
18.数据查询
//数据查询 $users=User::all(); $user=User::find(1); //有时, 您可能想要在找不到模型数据时抛出异常,通过 firstOrFail 方法。 $model=User::findOrFail(1); $model=User::where('votes','>',100)->firstOrFail();
相关文章推荐
- Laravel 5框架学习之Laravel入门和新建项目
- Laravel 5框架学习之日期,Mutator 和 Scope
- Laravel 5 学习笔记
- Laravel 5框架学习之向视图传送数据
- Laravel 5框架学习之表单验证
- Laravel 5框架学习之子视图和表单复用
- Laravel 5框架学习之Eloquent 关系
- Laravel 5 框架入门(四)完结篇
- Laravel 5框架学习之Blade 简介
- Laravel 5框架学习之模型、控制器、视图基础流程
- Laravel 5框架学习之环境与配置
- Laravel 5框架学习之表单
- AngularJS入门知识之MVW类框架的编程思想探讨
- Laravel 5框架学习之数据库迁移(Migrations)
- Laravel 5 框架入门(三)
- Laravel 5框架学习之用户认证
- Laravel5中contracts详解
- 解决Laravel 5上传大文件时出现TokenMismatchException的问题
- Laravel5路由筆記
- 初写博客--laravel与hybrid 开发的数据传输