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()方法上。
如下图所示:
二、手工创建控制器和模型:
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,显示如下:
自定义方法代码如下:
实例 <?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、控制器中操作模型方法:可以使用依赖注入、可以使用实例化对象,当然也可以使用定义好的类的静态方法。