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