Ruby 程序员学习 laravel 框架笔记 (3)-第一个路由 UsersController

正如上一篇Ruby 程序员学习 laravel 框架笔记 (2)-跑 laravel 的 hello world所说的那样,已经把项目的hello world跑起来了,如今咱们要改它的首页内容。php

很简单,它的内容在项目文件中resources/views/welcome.blade.phplaravel

你打开这个文件,就能够修改它的内容了。程序员

有一个地方定义了这个首页的路由,是这个文件:routes/web.phpweb

内容以下:数据库

Route::get('/', function () {
    return view('welcome');
});

这是个定义路由的文件。浏览器

当执行view('welcome')为何就会去找resources/views/welcome.blade.php呢?ruby

原来有个文件定义了,是这个文件:config/view.phpbash

return [
    ...

    'paths' => [
        resource_path('views'),
    ],

    ...

]

resource_path('views')的内容输出来就是resources/views/welcome.blade.php的绝对路径了。app

1. 修改路由

找到routes/web.php文件,添加以下内容:框架

Route::get('/users', function () {
    $users = [
            '0' => [
                'first_name' => 'Renato',
                'last_name' => 'Hysa'
            ],
            '1' => [
                'first_name' => 'Jessica',
                'last_name' => 'Alba'
            ]
        ];
    return $users;
});

在浏览器中已输出了$users变量的内容。

通常来讲,咱们不会在路由中放太多逻辑,咱们应该把这些逻辑放到controller中。

2. 使用 php artisan

像rails那样的,咱们能够用命令来生成一个controller,而这个命令就是php artisan

你在终端上输入php artisan并回车,能够看到它有不少子命令。

如今咱们要使用make:controller这个子命令。

php artisan make:controller UsersController

终端上会提示:

Controller created successfully.

表示成功建立了users这个controller,文件位于app/Http/Controllers/UsersController.php

它的内容以下:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UsersController extends Controller
{
    //
}

我把它的内容修改以下:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UsersController extends Controller
{
    public function index()
    {
        $users = [
            '0' => [
                'first_name' => 'Renato',
                'last_name' => 'Hysa'
            ],
            '1' => [
                'first_name' => 'Jessica',
                'last_name' => 'Alba'
            ]
        ];
        return $users;
    }
}

就是添加了一个index action。

最后,路由也要跟着变一下:

# routes/web.php
Route::get('/users', 'UsersController@index');

浏览器仍是会输出跟原来同样的内容。

3. 使用view

在实际开发中,controller应该放一些业务逻辑的内容,好比查找数据库,要呈现给用户的数据应该放在view中。

咱们把$users这个变量的内容放到view中。

以前的index方法里的return $users;改为return view('admin.users.index', compact('users'));

以下所示:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UsersController extends Controller
{
    public function index()
    {
        $users = [
            '0' => [
                'first_name' => 'Renato',
                'last_name' => 'Hysa'
            ],
            '1' => [
                'first_name' => 'Jessica',
                'last_name' => 'Alba'
            ]
        ];
        return view('admin.users.index', compact('users'));
    }
}

而后找到resources/views目录,再新建一个admin目录,再在admin目录下新建users目录。

最后新建一个index.blade.php文件,位于resources/views/admin/users/index.blade.php,内容以下:

<ul>
    @foreach($users as $user)
        <li>{{ $user['first_name'] }} {{ $user['last_name'] }}</li>
    @endforeach
</ul>

浏览器输出以下:

完结。

下一篇:Ruby 程序员学习 laravel 框架笔记 (4)-在数据库中建立一条数据