laravel(四)-laravel中的MVC

什么是Controller、View、Model?

MVC模式的全称,包括模型(model)-视图(view)-控制器(controller),mvc是用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

laravel中的Controller

在laravel中,控制器存放在app/Http/Controllers及子文件夹中,其作用是供路由调用,处理相应的路由请求。

//路由文件中调用
Route::get('test','Member\TestController@index');

控制器的命名空间一般是 App\Http\Controllers,
继承自父类App\Http\Controllers\Controller

<?php
namespace App\Http\Controllers\Member;
use App\Http\Controllers\Controller;
class TestController extends Controller{
    public function index(){
        return 'hello member';
    }
}

laravel中的View

存放在/resources/view及子文件夹中,其作用是供控制器调用,处理相应的用户界面展示。

View模板如果以.php结尾,模板中调用变量 仅能使用PHP 原生语法,例<?php echo $title; ?>
如果以.blade.php结尾,则可以使用 laravel 特有的模板语法也可以直接使用PHP语法
例{{ $title }}

注意:
如果有.php和xx.blade.php两种同名的(仅指文件名)模板,优先用 blade 模板.

模板使用:

return view('member.add'); // 将使用 views/member/add[.blade].php

模板赋值(参数传递):

public function member(){
    $data = ['name'=>'小明','love'=>'laravel'];
    return view('member',$data);
}

laravel中的Model

model 文件用于处理数据库的操作,默认存放在/app 文件夹下 , 命名空间是App.当然model 文件也可以自由的放在其他地方(如新建一个文件夹Models),但必须保证命名空间的正确性。

在 laravel 中约定,表名叫xxs,复数形式.
如用户 (user) 表名叫users,积分 (point) 表叫points.
模型和表名有关系,一般表名去掉s, 即为 Model 的类名。

注:如果想自定义模型对应的表,直接指定table即可

<?php
namespace App;

use Illuminate\Database\Eloquent\Model;

class Member extends Model{
    //指定模型对应的表为member
    protected $table = 'member';
}

发表评论