Blogger Information
Blog 35
fans 0
comment 0
visits 44121
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
laravel-创建“控制器”和“模型”,使用模型方法获取数据库内容并输出--2019年11月1日
Victor的博客
Original
2527 people have browsed it

1、通过artisan和手动创建控制器,并通过设置路由访问
2、通过artisan和手动创建模型,并通过配置数据库实现从表中获取数据
3、在控制器中引用模型,通过模型方法获取数据库中的数据,并输出


一、通过artisan自动创建控制器和模型:


在Laravel根目录下打开控制台 ---> 输入命令行:php artisan make:controller Home  ---> 框架自动在 App/Http/Controllers目录下创建与类名同名的php文件(控制器模块);
                                              ---> 输入命令行:php artisan make:model Models\CheckLogin  ---> 框架自动在 App/Models目录下创建与类名同名的php文件(模型模块);
在Routes目录下的web.php中设置路由访问:Route::get('/login', 'Home@login'); 将 url中的“login”map到 Home类模块 的 login()方法上。

如下图所示:

autoLogin.jpgautoLogin.jpg


二、手工创建控制器和模型:

1) 在 App/Http/Controllers目录下手工创建与类名同名的php文件(控制器模块)Home.php

实例
<?php
namespace App\Http\Controllers;
use App\Models\CheckLogin;
class Home extends Controller {
	public function login(CheckLogin $check) {
		echo "<strong>显示登录页面...</strong>", "<br>";
		echo $check->checkResult();
	}
}
运行实例 »点击 "运行实例" 按钮查看在线实例

要点:

  • 添加与真实路径相同的命名空间

  • 控制器下的标准类,需要继承自同一命名空间下的Controoler

  • 编写自定义成员方法完成相应功相应功能

2)  在 App/Models目录下手工创建与类名同名的php文件(模型模块)CheckLongin.php

实例
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class CheckLogin extends Model {
	public function checkResult() {
		return "<p style='color:red;font-weight: 500;' >此用户可以登录!</p>";
	}
}
运行实例 »点击 "运行实例" 按钮查看在线实例

要点:

  • 添加与真实路径相同的命名空间

  • 需要继承自Illuminate\Database\Eloquent\Model

  • 编写自定义成员方法完成相应功相应功能

3)  在Routes目录下的web.php中设置路由访问

设置方法与实现效果同上。


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

1、在.env中设置数据库的连接参数;

2、使用artisan创建一个显示数据库内容的控制器模块: Show.php,编写自定义方法list();

3、使用artisan创建一个模型类文件,(将数据库中要操作的表,映射到这个模型文件中,类名与表名相同):User.php,编写数据库操作方法getData();

4、在resources/views目录下创建一个模版视图文件:show.blade.php;

5、配置web.php中的路由:Route::get('show', 'Show@list');

6、访问 根域名/show,显示如下:

datalist.jpg

自定义方法代码如下:

实例
<?php
namespace App\Http\Controllers;
use App\Models\User;
class Show extends Controller {
	public function list() {
		$res = (new User)->getData();
		return view('show')->with('items', $res);
	}
}

运行实例 »点击 "运行实例" 按钮查看在线实例
实例
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class User extends Model {
	protected $table = 'user';
	protected $primaryKey = 'uid';
	public function getData() {
		return $this->get()->toArray();
	}
}

运行实例 »点击 "运行实例" 按钮查看在线实例

总结:

1、练习了通过artisan和手动创建控制器、模型、数据表映射类,并通过设置路由访问 ;
2、控制器中操作模型方法:可以使用依赖注入、可以使用实例化对象,当然也可以使用定义好的类的静态方法。



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
Author's latest blog post