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)-在數據庫中建立一條數據

相關文章
相關標籤/搜索