laravel控制器和模型的创建和使用

2019-11-0810:21:45后端程序开发Comments5,065 views字数 1745阅读模式

1、分别使用手动方式和artisan命令行方式创建控制器。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/17462.html

在laravel框架中控制器一般放在目录:app\Controllers下面,新建的控制器需要类名和文件名需要保持一致,首字母需要大写。控制器中的类需要继承自app\Controllers\Controller类,然后在写自定义的方法。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/17462.html

最后再Route文件中进行路由设置访问。Route::get('index','index@test')文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/17462.html

手动创建控制器:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/17462.html

<?php

namespace App\Http\Controllers;

class Index extends Controller{
    public function test(){
        echo "hello world";
    }
}

使用artisan命令行创建控制器:php artisan make:controller Home文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/17462.html

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class Main extends Controller{
    //
}

laravel控制器和模型的创建和使用文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/17462.html

2、分别使用手动方式和artisan命令行方式创建模型。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/17462.html

在laravel框架中模型并没确定的放置目录,可以再app目录下新建一个Models目录来存放模型文件,首字母也需要大写。模型类需要继承自:Illuminate\Database\Eloquent\Model类,该类中有文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/17462.html

框架已经封装好的方法,eg:数据库的增删改查操作等;继承该类后,自定义的类可以直接调用父类中的方法,可以减少代码量。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/17462.html

使用artisan命令行创建模型:PHP artisan make:model Models\Staff文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/17462.html

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Staff extends Model
{
  //
}

在使用命令行创建模型的时候需要在模型文件名前面加上目录Models\,否则会直接创建在app目录下面。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/17462.html

laravel控制器和模型的创建和使用文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/17462.html

模型中直接输出和控制器中的文件输出的路由设置方法不一样。Route::get('/staff','staff@selcet')是直接去Controllers文件夹中寻找staff文件,匹配不到直接报错。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/17462.html

3、在控制器中引用模型,通过模型方法获取数据库中的数据,并输出 。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/17462.html

在控制器中调用模型的时候需要使用use关键字来引入模型。可以通过依赖注入的方式在控制器的类中使用模型中的方法,并且不需要手动将类实例化,框架会自动进行类的实例化。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/17462.html

控制器Home代码:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/17462.html

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Movies;

class Home extends Controller
{
    public function getInfo(Movies $movies){
        echo '<pre>';
        // $res = $staff->select();
        $res = $movies->select();
        print_r($res);

    }
}

模型Movies代码:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/17462.html

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Movies extends Model
{        
       //将数据库中标的字段和类的属性绑定
    protected $table = 'movies';
    protected $primaryKey = 'mov_id';
    protected $name;
    protected $image;
    protected $detail;
    protected $cate_id;

    public function select(){
        return $this->get()->toArray();
    }
}

运行结果:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/17462.html

laravel控制器和模型的创建和使用文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/17462.html

文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/17462.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/bc/17462.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定