博主信息
Victor的博客
博文
32
粉丝
0
评论
0
访问量
6171
积分:0
P豆:68

laravel-创建“控制器”和“模型”,使用模型方法获取数据库内容并输出--2019年11月1日

2019年11月04日 18:01:33阅读数:281博客 / Victor的博客 / laravel框架

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、控制器中操作模型方法:可以使用依赖注入、可以使用实例化对象,当然也可以使用定义好的类的静态方法。



批改状态:合格

老师批语:非常直观

全部评论

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

条评论
暂无评论暂无评论!