
Application
基礎設定
- 開新的專案
composer create-project --prefer-dist laravel/laravel codehacking 5.2.29
- 新增資料庫、設定環境變數、進行 migration
php artisan migrate
設定 views
- 新增登入介面
php artisan make:auth
- 在 view 將目錄權限分開 新增
admin/index
admin/users/index
admin/users/create
admin/users/edit
admin/posts/index
admin/posts/create
admin/posts/edit
admin/categories/index
admin/categories/edit
User table migration
- 加入 git 專案:
git init
、git add .
、git commit -m "my first commit - admin view created"
- 新增資料欄位到 create_users_table.php
$table->integer('role_id')->index()->unsigned()->nullable();
$table->integer('is_active')->default(0);
- 新增 model
php artisan make:model Role -m
- 新增資料欄位到 create_roles_table.php
$table->string('name');
Relation setup and data entry
- 新增 Relation 到 User model
1 | public function role(){ |
- 將資料重新 migrate 到資料庫
php artisan migrate:refresh
用 Tinker 測試 Relation
- 進入 tinder 模式
php aritsan tinker
- 找到第一個 User
$user = App\User::find(1)
- 檢查該 user 的 role
$user->role
- 新增 User
App\User::create(['name'=>'Edwin Diaz', 'email'=>'edwin@codingfaculty.com']);
Admin Controller and Routes
- 新增 routes
Route::resource('admin/users', 'AdminUsersController');
- 新增 controller
php artisan make:controller --resource AdminUsersController
- 在 AdminUsersController 的 index function 加入
return view('admin.users.index');
- 在 AdminUsersController 的 create function 加入
return view('admin.users.create');
- 在 AdminUsersController 的 show function 加入
return view('admin.users.show');
- 在 AdminUsersController 的 edit function 加入
return view('admin.users.edit');
安裝 nodejs & 下載檔案
- 安裝 gulp
npm install --global gulp
Gulp & assets
- 安裝套件
npm install
- 將 css、js 檔案放置到 resources\assets
- 將 font 檔案放置到 public
- 設定 gulpfile.js
1 | .styles([ |
- 編譯檔案
gulp
- 新增 view /layouts/admin.blade.php
修正頁面
- 修改 resources/assets/sass/app.scss
#admin-page {padding-top: 0px;}
- 重新編譯檔案
gulp
- 新增 routes
1 | Route::get('/admin', function(){ |
- 修改 admin/index view
1 | @extends('layouts.admin') |
顯示 Users
- 修改 admin/users/index view
1 | @extends('layouts.admin') |
- 修改 AdminUsersController
1 | public function index() |
- 在 admin/users/index view 新增 table
1 | <table class="table"> |
新增 Create Page
1 | @extends('layouts.admin') |
安裝 laravel collective html package
composer require "laravelcollective/html":"^5.2.0"
- 在 config/app.php 新增 provider
Collective\Html\HtmlServiceProvider::class,
- 在 config/app.php 新增 aliases
'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,
Create Page Form 表單
- 在 admin/users/create view 新增表單
1 | {!! Form::open(['method'=>'POST', 'action'=>'AdminUsersController@store']) !!} |
- Role 的資料引入 (用 controller 抓取資料) - 修改 AdminUsersController
1 | public function create() |
- 新增 Request
php artisan make:request UsersRequest
- 新增 rules function validation
1 | public function rules() |
- 將 AdminUsersController 的 store function 的 Request 換成 UsersRequest (要 import)
public function store(UsersRequest $request)
- 新增 views/includes/form_error.blade.php
1 | @if(count($errors) > 0) |
- 在 create page view include form error
@include('includes.form_error')