博主信息
博文 35
粉丝 0
评论 0
访问量 51746
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
laravel-创建“控制器”和“模型”,使用模型方法获取数据库内容并输出--2019年11月1日
Victor的博客
原创
2888人浏览过

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



批改状态:合格

老师批语:非常直观
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学