正如上一篇Ruby 程序员学习 laravel 框架笔记 (2)-跑 laravel 的 hello world所说的那样,已经把项目的hello world跑起来了,如今咱们要改它的首页内容。php
很简单,它的内容在项目文件中resources/views/welcome.blade.php
。laravel
你打开这个文件,就能够修改它的内容了。程序员
有一个地方定义了这个首页的路由,是这个文件:routes/web.php
web
内容以下:数据库
Route::get('/', function () { return view('welcome'); });
这是个定义路由的文件。浏览器
当执行view('welcome')
为何就会去找resources/views/welcome.blade.php
呢?ruby
原来有个文件定义了,是这个文件:config/view.php
。bash
return [ ... 'paths' => [ resource_path('views'), ], ... ]
把resource_path('views')
的内容输出来就是resources/views/welcome.blade.php
的绝对路径了。app
找到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中。
像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');
浏览器仍是会输出跟原来同样的内容。
在实际开发中,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>
浏览器输出以下:
完结。