入门教程
来自tomtalk
一个简单的例子
用artisan命令生成Model
如果是windows开发环境,把php.exe的目录添加到环境变量里,以便通过php运行artisan命令。
php artisan make:model Article php artisan make:model Page
新建的Page模型文件代码:
namespace App; use Illuminate\Database\Eloquent\Model; class Page extends Model { // }
生成数据表、填充记录
php artisan migrate php artisan db:seed
路由
Route::group(['prefix' => 'admin', 'namespace' => 'Admin'], function () { Route::get('/', 'AdminHomeController@index'); });
控制器
php artisan make:controller Admin/AdminHomeController
use App\Page; public function index() { return view('admin/home')->withPages(Page::all()); }
视图
这里有几个模板标签不能用,缺app布局模板文件,下载代码快照,那里有。
@extends('app') @section('content') ... @endsection
完成Pages管理功能
新增“资源控制器”路由
Route::resource('pages', 'PagesController');
生成控制器
php artisan make:controller Admin/PagesController
补充控制器方法
create() store() edit() update() destory()
创建模板文件
/resources/views/admin/pages/create.blade.php /resources/views/admin/pages/edit.blade.php
Class 'input' not found
It is Input and not input. This commit removed Input facade definition from config/app.php hence you have to manually add that in to aliases array as below,
'Input' => Illuminate\Support\Facades\Input::class, //Or You can import Input facade directly as required, use Illuminate\Support\Facades\Input;
Undefined variable: errors in Laravel
Add 'middleware' => 'web' for route you are using.
前台展示页
权限验证
'middleware' => 'auth'
构建首页
模板里,热血名句报错。
{{ Inspiring::quote() }}
查看代码快照,要在config\app.php文件中引入Inspiring类。
'Inspiring' => Illuminate\Foundation\Inspiring::class,
构建展示页
- 路由
- 控制器
- 模板
加入评论功能
初识Eloquent
创建Comment模型
php artisan make:model Comment
php artisan migrate
建立“一对多关系”
在page模型里加入关系声明即可。
public function hasManyComments() { return $this->hasMany('App\Comment', 'page_id', 'id'); }
前台提交功能
- 路由
- 控制器
- 模板
public function store() { if (Comment::create(Input::all())) { return Redirect::back(); } else { return Redirect::back()->withInput()->withErrors('评论发表失败!'); } }
- 模板error变量报错,前面处理的方法在这里不适用,不知如何处理。
后台管理功能
auth权限功能用不了,取消不用。
- 路由
- 控制器
- 模板
大作业
用articles表,把pages表实现的功能,重新做一遍。