laravel工作机制(PHP程序设计)
2021-05-29 14:02
标签:layout 创建 table min confirm 文件 artisan migrate 表名 作用:将请求匹配到某个特定路由 路由映射到特定控制器,控制器处理请求,简化URL访问地址 GET路由: Route::get(‘/‘,function(){ return ‘Hello World‘ }); POST路由: Route::post(‘foo/bar‘,function(){ return ‘Hello World‘ }); 任何HTTP请求路由: Route::any(‘foo‘,function(){ return ‘Hello World‘ }); 输出结果均为Hello World 运行命令eg:php artisan routes 框架的路由文件,负责路由分配和映射。 控制器操作数据,操作内容交给模型,负责协调调度 模型与数据库交互,负责业务数据处理 $table:指定模型使用的数据库表名 $timestamps:是否在表中自动维护update_at和created_at字段,默认为true,要定义成public $fillable:允许集体赋值的字段 插入新纪录: $user = new User(); $user ->name = "Tom"; $user->save(); //保存到数据库 查询记录: $user = new User(); $users = User::find($id); $users = User::where(‘name‘,‘john)->get(); 修改记录: $user = new User(); $users = User::find($id); //仅限于主键(一般设置id) $user ->name = "Tom"; $user->save(); 删除记录: $users = User::find($id); $user->delete(); 存储数据 php artisan migrate:make create_users_table所有的迁移都被存放在app/database/migrations文件夹下。 在migrations目录下创建CreateXxxTable类,继承migration类,up方法创建表,并配置表中的文件。 使用artisan命令migrate来执行迁移,创建数据库。 eg:php artisan migrate 注:$table->timestamps() //该字段在插入和更新时都不会自动设置当前时间(与迁移文件相对比) laravel 用seed类为数据库填充测试数据,所有的seed类都在app/database/seeds目录下 在seeds目录下创建XxxTableSeeds类,继承Seeds类,run方法编辑数据填充的语句,使用call方法来运行seed类。 向数据库添加数据: 使用artisan命令db:seed来填充数据库。 eg:php artisan db:seed 控制器把数据交给视图美化,负责显示数据和收集数据 @extends(‘layout.app‘) //home页面继承layout模板,继承要用到关键字@extends //layout.app 表示layout文件夹下的app.blade.php @section(‘content‘) //@section则是用来定义content位置的内容 @yield用于声明一个位置,用于插入内容。第一个参数是ID,第二个参数是默认内容,当该content位置为插入内容,则显示默认内容。(一般是在layout.balde.php文件里) 为一个用户列表 laravel工作机制(PHP程序设计) 标签:layout 创建 table min confirm 文件 artisan migrate 表名 原文地址:https://www.cnblogs.com/Hiramunderneath/p/14723872.htmllaravel工作机制
1.用户User
2.路由Route
1.作用:
2.分为GET路由和POST路由和任何HTTP请求路由
3.列出本站所有路由
4.routes.php
3.控制器Controller
1.作用:
2.BaseController(基本控制器)
class BaseController extends Controller {
protected function setupLayout()
{
if ( ! is_null($this->layout))
{
$this->layout = View::make($this->layout);
}
}
}3.SurveyController(用到的主要方法)
public function survey($email=""){ //满意度调查问卷,输入email自动生成
return View::make(‘index‘)->with(‘email‘,$email);
}
?
public function adminindex(){ //后台首页
return View::make(‘adminindex‘);
}
?
public function getIndex(){ //访问的默认方法,问卷列表页
$surveys=Survey::orderBy(‘created_at‘,‘desc‘)->paginate(5);//每页5条记录
return View::make(‘survey.list‘)->with(‘surveys‘,$surveys);
} //返回问卷列表中答卷列表,满意,不满意的问卷信息public function submitsurvey(){ //满意度调查问卷提交
// return json_encode(array(‘success‘=>true,‘msg‘=>"成功提交"));//把json串转换为数组
$datas=Input::all(); //输入问卷属性中所有数据
$rules=array(
‘email‘=>‘required|email|unique:records‘
);
$validtor=Validator::make($datas,$rules);
if($validtor->fails()){
$msg=$validtor->messages()->first(‘email‘);
return json_encode(array(‘success‘=>false,‘msg‘=>$msg));
}
$survey=new Survey();
$survey->email=$datas[‘email‘];
$survey->ip=$_SERVER[‘REMOTE_ADDR‘];
$survey->q1=$datas[‘q1‘];
if ($survey->q1==0){
$survey->q21=$datas[‘q21‘];
$survey->q22=$datas[‘q22‘];
$survey->q23=$datas[‘q23‘];
$survey->q24=$datas[‘q24‘];
$survey->q25=$datas[‘q25‘];
}
$survey->save(); //问卷保存
return json_encode(array(‘success‘=>true,‘msg‘=>"成功提交,感谢您的参与"));
}4.UserController(用到的主要方法)
class UserController extends BaseController
{
public function __construct(){
$this->beforeFilter(‘csrf‘,array(‘on‘=>‘post‘));
$this->beforeFilter(‘auth‘,array(‘except‘=>array(‘login‘,‘dologin‘)));
}
public function login(){ // 用户登录
return View::make(‘user.login‘); //返回视图login登录
}
?
public function dologin(){ //判断登录信息是否与数据库信息一致(登录提交)
$username=Input::get(‘username‘); //获取手动输入的用户名进行传参$username
$password=Input::get(‘password‘);
if(Auth::attempt(array(‘username‘=>$username,‘password‘=>$password))){
return Redirect::to(‘/adm‘);
} //将手动输入信息与数据库内容进行比对
else{
return Redirect::to(‘/login‘); //失败重新返回login登录界面
}
}
public function logout(){ //用户注销
Auth::logout();
return Redirect::to(‘/login‘); //返回重定向login登录界面
}
public function getIndex(){ //默认的访问方法(用户列表页)
$users=User::orderBy(‘created_at‘,‘desc‘)->paginate(5);
return View::make(‘user.list‘)->with(‘users‘,$users);
}public function getAddUser(){ //执行get方式用户添加
return View::make(‘user.adduser‘); //返回视图用户添加页面
}
?
public function postAddUser(){ //执行post方式用户添加,添加管理员提交生成后的页面
$data=Input::all(); //获取用户待验证的数据(表单验证$data参数)
$rules=array( //该数据需要应用的验证规则(表单验证$rules参数)
‘username‘=>‘required‘,
‘email‘=>‘required|email|unique:users‘,
‘password‘=>‘required|min:6|confirmed‘
);
$validator=Validator::make($data,$rules); //表单验证(例如验证密码不能重复,密码不能少于6位)
?
if ($validator->fails()){
$errors= $validator->messages();
return Redirect::to(‘/adm/user/add-user‘)->with(‘errors‘,$errors);
}
$name=Input::get(‘username‘); ////获取手动输入的用户名进行传参$name
$email=Input::get(‘email‘);
$password=Input::get(‘password‘);
$user=new User(); //初始化
$user->username=$name; //传参的数据到数据库user表中的uersname属性中
$user->email=$email;
$user->password=Hash::make($password);//哈希加密
$user->save(); //保存
return Redirect::to(‘/adm/user‘); //返回重定向user列表
?
}4.模型Model
1.作用:
2.常用字段:
5.数据库Database
1.作用:
2.编辑迁移文件:
class CreateUserTable extends Migration {
public function up()
{
Schema::create(‘users‘, function(Blueprint $table)
{
$table->increments(‘id‘);
$table->String(‘username‘,50);
$table->String(‘email‘,60);
$table->String(‘password‘,100);
$table->String(‘remember_token‘)->default("");
$table->timestamps();
});
}
}3.编辑数据填充:
class DatabaseSeeder extends Seeder {
?
public function run()
{
Eloquent::unguard();
$this->call(‘UserTableSeeder‘);
}
}class UserTableSeeder extends Seeder
{
public function run(){
$user=new User();
$user->username="111111";
$user->email="admin@qq.com";
$user->password=Hash::make("123456");
$user->save();
}
?
}6.视图Views
1.作用:
2.Laravel提供Blade模块引擎,所有这些模板都必须以.blade.php结尾。
3.$user->userlist
上一篇:使用GitHub搭建个人网站