[2018-01-12] laravel中的MVC

[2018-01-12] laravel中的MVC

路由里面可以做所有事情,但是真正的项目当中,路由只用来接收请求,并转发给控制器的方法进行处理

 

首先我们先了解一下

一、app/Http/routes路由的用法:

方法一、

这种方法写完后在控制器创建方法是直接写名称就行了,但这个方法会让我们在每在控制器写一个方法时,都要去routes里面配置一次路由的;

any是任何方式的传值都能接收:Route::any('/home', 'HomeController@home');

post是只接受以post传值的方法:Route::post('/home', 'HomeController@home');

get是只接受以get传值的方法    :Route:get('/home', 'HomeController@home');

图解:

 

 方法二、

直接写控制器名称但这也有要求的 介绍如下

路由中书写
Route::controller('/', 'HomeController');

图解:

这种方式路由中只需要配置一次,完成后,我们在控制器中在建立方法时只需要加上get,and,post前缀就行了。

如下:

切记:在传参数时前面要加上传参方式,然后在书写方法名称,记住首字母要大写,最好不要使用驼峰式命名,容易报错。

如果跳转路径的话,是一样的直接跳转方法名称就好了;

 

 二、app/Http/Controllers(控制器路径),resources/views(视图路径)和自定义的Model的用法:

1.如何创建一个控制器

找到控制器路径书写方法名就行

 

在控制器内的创建方式:

<span style="font-size:14px;"><?php  
namespace App\Http\Controllers; //调用laravel中一封装好的控制类文件  
use App\Http\Controllers\Controller;//调用Controller控制器的路径;  
class HomeController extends Controller  
{  
    public function getIndex(){  
        return redirect('/login/log');//跳转控制器  
    }  
    public function getShow(){  
        return view('index',['data'=>$data]);//加载视图层和传值方式;  
    }  
}</span>  

 

创建一个Model层

首先我们要知道在laravel5.2中model层其实是自行创建的,只不过在控制调用时加上use路径就好了;

我们可以直接建立app目录下或者创建一个文件夹将model写入里面;

在内我们要增删改查的话进入laravel的在线手册即可,里面有详细的说明和用法;

在app下创建:

在model中的书写:

<span style="font-size:14px;"><?php  
namespace App;  
use Illuminate\Database\Eloquent\Model;//调用Model方法的读写路径;  
use Illuminate\Support\Facades\DB;//调用DB方法的读写路径;(如果不使用这种方法,这个可以不用掉用)  
class Country extends Model  
{  
    protected $tableName = 'country';//表名称;  
    public function index()//查  
    {  
       return $this->all();//$this相当于Model和DB重新组合成的一个类,这个$this由于在DB中不存在all()的形式,所以这个$this指的是Model。  
    }  
}</span>  

创建Views视图层:在创建Views是最简单的但在laravel中我们就要写成php形式的了;

方法如下:

 

 跳转方式:

在视图层中加载样式引用方法:{{ URL::asset(‘’) }};

 

 

 

 

 

 

 

 

 

 

 

控制器(C)

1.怎么新建一个控制器?

  在App\Http\Controllers目录下新建一个名为:MemberController的控制器

<?php

namespace App\Http\Controllers;    //命名空间

class MemberController extends Controller    //继承于控制器基类
{
    public function info($id)
    {
        return 'member-info-id-'.$id;
        // return route('memberinfo');        //通过路由别名找到路由地址
    }
}

 

2.控制器和路由怎样进行关联?

3.关联控制器后,路由的特性怎么用?

通过路由访问控制器
// Route::get('member/info',['uses' => 'MemberController@info']);

// Route::get('member/info',['uses' => 'MemberController@info','as' => 'memberinfo']);    //as:路由别名

// Route::get('member/{id}',['uses' => 'MemberController@info']);    //路由参数

Route::get('member/{id}',['uses' => 'MemberController@info'])->where('id','[0-9]+');    //路由参数(条件)

 

 

视图(V)

1.怎样新建视图?

  在resources\views目录下新建一个名为member-info.php的文件(支持原生php)

<?php
echo 'member-info-php';

  默认模板
    在resources\views目录下新建一个名为info.blade.php的文件(在控制器中输出的时候不需要书写全名,只需要输入blade前面的部分就可以了)

2.怎样输出视图?

  在控制器中return view('文件名’);

 

一般一个控制器会对应一个视图目录(输出的时候记得要加上目录的名称)

在控制器中可以添加变量,在模板中调用标量需要用:{{$变量名}}来调用。注意:.blade.php才可以输入变量

 

模型(M)

1.怎样新建模型?

  在App目录下新建Member.php文件

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Member extends Model
{
    public static function getMember()    //静态方法
    {
        return 'member name is chenlin';
    }
}

 

2.怎样使用模型?

  在控制中一定要记得导入你所创建的类

<?php

namespace App\Http\Controllers;    //命名空间

use App\Member;        //导入类

class MemberController extends Controller    //继承于控制器基类
{
    public function info($id)
    {

        return Member::getMember();  //返回静态方法

    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值