创建控制器,通过设置路由访问;创建模型,从数据库表中获取数据,引用,并输出—2019年11月1日

2019年11月03日 15:58:55阅读数:570博客 / L先生的博客 / 作业

通过artisan和手动创建控制器,并通过设置路由访问


设置路由访问:

Route::get('/home','home@index');
// 在浏览器输入lv.io/home时,会访问到控制器Home.php中的index方法。

创建控制器:

在app/Http/Controllers中新建一个Home.php的文件

内容如下:

<?php
namespace App\Http\Controllers;    //命名空间必须要有
class Home extends Controller      //类名首字母必须大写和文件名一致,必须继承。
{
    public function index(){
        echo 'hello home ';       //这里直接返回内容,
    }
}
//此时访问 lv.io/home   就会显示hello home

命令行创建控制器

cmd进入,在项目的根目录:php artisan make:controller Home       就可以创建名为Home.php的控制器

内容如下:

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;    //暂时用不到。
class Home extends Controller
{
    //
}
//自己创建方法就可以。


通过artisan和手动创建模型,并通过配置数据库实现从表中获取数据

配置数据库:

.env文件

DB_CONNECTION=mysql

DB_HOST=127.0.0.1

DB_PORT=3306

DB_DATABASE=ouyangke

DB_USERNAME=root

DB_PASSWORD=root

其他方法:config下的database文件就是和数据库相关的,'default' => env('DB_CONNECTION', 'mysql'),   默认从env文件中获取数据库的信息,如果注释掉。查看connections,各种数据的连接,都是默认从env中获得数据,如果env中没有这6条记录,就从这里配置。

创建模型:

在App目录下新建一个Models新建一个php模型,比如要连接数据库ouyangke中的一个表user表。新建一个User.php   (规范:首字母大写)

内容如下:

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;     //必须引入模型

class User extends Model
{
    // $table,$primaryKey关键字是固定的
    protected $table = 'user';  //指定表名,如果不写这一条,会默认从users中查询,模型自动加一个s
    protected $primaryKey = 'uid';  //指定主键的名称,如果不写这一条,会默认为id,就不能执行查找某一条数据等操作了

    public function demo(){
        // 查询表中所有的数据
        // return $this->get()->all();
        // 只要有用的数据
        return $this->get()->toArray();
    }

}

命令行创建模型:

cmd进入,在项目的根目录:

php artisan make:model Models/User
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Demo extends Model
{
    //内容
}


在控制器中引用模型,通过模型方法获取数据库中的数据,并输出

<?php

namespace App\Http\Controllers;

use App\Models\User;    //使用模型前必须引用

class Home extends Controller{   

// 参数,引入了User类,第一个参数就是User,$user就是实例化的对象,就能直接调用类中的方法。   

public function index(User $user){       

    $res = $user->demo();      

     dump($res);  

 }}

访问lv.io/home ,就会在页面显示数据库的内容。

总结:

为什么没有模型目录?当开始使用 Laravel 时,许多开发人员都因缺少  models 目录而感到困惑。然而,缺少这样的目录是故意的。我们发现「模型」含糊不清,因为不同的人对「模型」有不同的理解。一些开发者把应用的「模型」称为其所有业务逻辑的总体,而另一些人将「模型」称为与关系数据库交互的类。出于这个原因,我们默认把 Eloquent 的模型放在  app   目录下,并允许开发人员将它们放在其他地方。

不好的地方:如果有200张表就得创建200个模型类。。。。

批改状态:合格

老师批语:并非每张都要创建模型, 而且一个大型项目, 有上百个模型也正常呀

版权申明:本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!

全部评论

文明上网理性发言,请遵守新闻评论服务协议

条评论
  • 博主信息
    L先生的博客
    博文
    28
    粉丝
    0
    评论
    0
    访问量
    15569
    积分:0
    P豆:60
    博文分类
    作业28篇