Blogger Information
Blog 28
fans 0
comment 0
visits 21131
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
创建控制器,通过设置路由访问;创建模型,从数据库表中获取数据,引用,并输出—2019年11月1日
L先生的博客
Original
784 people have browsed it

通过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个模型类。。。。

Correction status:qualified

Teacher's comments:并非每张都要创建模型, 而且一个大型项目, 有上百个模型也正常呀
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments