laravel的MVC

原创
2014/01/19 20:29
阅读数 5.4K

一、laravel路由(应用中的大多数路由都会定义在 app/routes.php 文件中

routes.php

Route::get('/test','TestController@index');
一个路由就定义好了,当访问 http://xxx.com/public/index.php/test 时就会去找 app/controllers/TestController.php的index方法
TestController.php
class TestController extends Controller{    
    public function index(){        
        echo "hello world";
    }
}
一个控制器就建立好了,控制器也可以设置闭包,也可以设置别名
Route::get('user/profile', array('as' => 'profile', function()
{
    echo "hello world";
}));
更多路由请看手册: http://www.golaravel.com/docs/4.1/routing/

二、模型 
普通数据库操作

$results = DB::select('select * from users where id = ?', array(1));//查
$results = DB::insert('insert into users (id, name) values (?, ?)', array(1, 'Dayle'));//增
$results = DB::update('update users set votes = 100 where name = ?', array('John'));//更新
$results = DB::delete('delete from users where id = ?',array(1));//删

查询生成器

//查
$obj = DB::table('archives')->select('archives.*','arctype.typename')->where('archives.id','>',2)->join('arctype','arctype.id','=','archives.typeid','left')->orderBy('archives.id','desc')->skip(10)->take(5)->get();//查多条数据
$obj = DB::table('archives')->where('typeid','=','1')->orderBy('id','desc')->first();//查询一条数据
//where条件分组
$sql = DB::table('archives')
    ->where('typeid', '=', 1)
    ->orWhere(function($query)
    {
        $query->where('id', '>', 2)
                ->where('title', '<>', 'Admin');
    })
    ->get();//sql语句: select * from `la_archives` where `typeid` = 1 or (`id` > 2 and `title` <> 'Admin')
//聚合查询
$users = DB::table('archives')->count();//查总数
$price = DB::table('archives')->max('id');//查最大值
$price = DB::table('archives')->min('id');//查最小值
$price = DB::table('archives')->avg('id');//查平均值
$total = DB::table('archives')->sum('id');//查和
//增
$data = array('title'=>'标题八','body'=>'内容八','typeid'=>2);
$obj = DB::table('archives')->insert($data);
//改
$data2 = array('title'=>'标题九','body'=>'内容九','typeid'=>2);
$obj = DB::table('archives')->where('id',2)->update($data2);
//删
$obj = DB::table('archives')->where('id','>','100')->delete();

//模型(app/models/Archives.php)

class Archives extends Eloquent{    
    protected $table = 'archives';//表名
    public $timestamps  = false;//不自动维护更新时间
}
//模型操作和普通SQL查询一样
$arr = Archives::select('archives.*','arctype.typename')->where('archives.id','>',2)->join('arctype','arctype.id','=','archives.typeid','left')->orderBy('archives.id','desc')->skip(0)->take(10)->get();
$data = array('title'=>'新标题','body'=>'新内容');
$arr = Archives::where('id','=',2)->update($data);

三、视图(app/views/home/test.blade.php)

<?php 
    foreach($items as $k=>$v){
        echo $v->title.'<br>';
    }
?>



控制器中

public function test(){
   $data = Archives::select('*')->get();
   return View::make('home.test')->with('items',$data);
}




展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
4 收藏
2
分享
返回顶部
顶部