标签: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
框架的路由文件,负责路由分配和映射。
控制器操作数据,操作内容交给模型,负责协调调度
class BaseController extends Controller {
protected function setupLayout()
{
if ( ! is_null($this->layout))
{
$this->layout = View::make($this->layout);
}
}
}
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‘=>"成功提交,感谢您的参与"));
}
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列表
?
}
模型与数据库交互,负责业务数据处理
$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方法创建表,并配置表中的文件。
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();
});
}
}
使用artisan命令migrate来执行迁移,创建数据库。
eg:php artisan migrate
注:$table->timestamps() //该字段在插入和更新时都不会自动设置当前时间(与迁移文件相对比)
laravel 用seed类为数据库填充测试数据,所有的seed类都在app/database/seeds目录下
在seeds目录下创建XxxTableSeeds类,继承Seeds类,run方法编辑数据填充的语句,使用call方法来运行seed类。
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();
}
?
}
使用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文件里)
标签:layout 创建 table min confirm 文件 artisan migrate 表名
原文地址:https://www.cnblogs.com/Hiramunderneath/p/14723872.html