入门教程

来自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,

构建展示页

  1. 路由
  2. 控制器
  3. 模板

加入评论功能

初识Eloquent

创建Comment模型

php artisan make:model Comment 
php artisan migrate

建立“一对多关系”

在page模型里加入关系声明即可。

public function hasManyComments()
{
    return $this->hasMany('App\Comment', 'page_id', 'id');
}

前台提交功能

  1. 路由
  2. 控制器
  3. 模板
public function store()
{
    if (Comment::create(Input::all())) {
        return Redirect::back();
    } else {
        return Redirect::back()->withInput()->withErrors('评论发表失败!');
    }
}
模板error变量报错,前面处理的方法在这里不适用,不知如何处理。

后台管理功能

auth权限功能用不了,取消不用。

  1. 路由
  2. 控制器
  3. 模板

大作业

用articles表,把pages表实现的功能,重新做一遍。