国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

Laravel 4 的Pages和表單驗證

2020-03-22 20:18:15
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了關于Laravel 4 的Pages和表單驗證,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

本篇教程是本系列的完結篇,要做的是Pages的詳細管理功能,表單驗證以及命名空間的深度使用,和一個更好用的通知組件,并且布置一個簡單的大作業。

1. 構建Pages管理功能

運行命令:

php artisan generate:controller admin/PagesController

修改PagesController.php 內容:

 ?phpnamespace App/Controllers/Admin;use Page;use Input, Notification, Redirect, Sentry, Str;use App/Services/Validators/PageValidator;html' target='_blank'>class PagesController extends /BaseController { public function index() return /View::make( admin.pages.index )- with( pages , Page::all()); public function show($id) return /View::make( admin.pages.show )- with( page , Page::find($id))- withAuthor(Sentry::findUserById(Page::find($id)- user_id)- name); public function create() return /View::make( admin.pages.create  public function store() $validation = new PageValidator; if ($validation- passes()) $page = new Page; $page- title = Input::get( title  $page- body = Input::get( body  $page- user_id = Sentry::getUser()-  $page- save(); Notification::success( 新增頁面成功!  return Redirect::route( admin.pages.edit , $page-  return Redirect::back()- withInput()- withErrors($validation- errors); public function edit($id) return /View::make( admin.pages.edit )- with( page , Page::find($id)); public function update($id) $validation = new PageValidator; if ($validation- passes()) $page = Page::find($id); $page- title = Input::get( title  $page- body = Input::get( body  $page- user_id = Sentry::getUser()-  $page- save(); Notification::success( 更新頁面成功!  return Redirect::route( admin.pages.edit , $page-  return Redirect::back()- withInput()- withErrors($validation- errors); public function destroy($id) $page = Page::find($id); $page- delete(); Notification::success( 刪除成功!  return Redirect::route( admin.pages.index }

然后,打開http://localhost:8000/admin 頁面,用之前 seed 進去的賬號密碼登錄,我們會得到一個錯誤:

Class App/Controllers/Admin/PagesController does not exist

這個文件明明已經有了啊,為什么Laravel報錯說沒有呢?!原因在第二篇教程里,我在這里直接說了吧。因為這個類不在頂級命名空間下,而我們沒有告訴Laravel我們已經新添了一個子命名空間下的類。我們現在來告訴它:

composer dump-autoload

OK,刷新,我們又會得到以下錯誤:

View [admin.pages.index] not found.

這時候,把我的視圖中的整個pages文件夾復制過去吧。

刷新。你會得到以下錯誤:

Class Notification not found

這是因為我們還沒有裝這個composer包,edvinaskrucas/notification,請自行安裝3.0.1 版(4是為 Laravel 5 準備的),這是第三個小作業。一定要放在 require 里面,require-dev 里面的包只在開發的時候使用。

這里的Notification 就是那個更好用的通知組件。

這個包裝好以后,運行:

composer dump-autoload

然后在 config/app.php 里面恰當的位置分別增加下面兩行:

 Krucas/Notification/NotificationServiceProvider 
 Notification = Krucas/Notification/Facades/Notification 

恰當的位置很多人不理解,導致很多人出現了錯誤,解決方式也很簡單

刷新,如果你看到以下界面:


恭喜你~ Pages的管理頁面完成了!

2. 表單驗證

Laravel提供了原生的非常好用的表單驗證功能,但是有時候驗證規則需要復用,所以我們將利用強大的命名空間來實現代碼復用,同時將展示Laravel之外的,PHP的命名空間帶來的強大的組件化功能和模塊解耦,HMVC什么的已經落后啦。

新建app/services/validators 兩級文件夾,并在composer.json的 autoload classmap 最后新增:

 app/services 

這是在告訴composer:來把我下面的所有文件和子文件夾中的所有文件合并到你的命名空間樹上吧! 這樣就讓 app/services 下的類可以聲明自己的命名空間了,子文件夾中的文件也可以聲明的自己屬于子命名空間了。這個文件夾將承載我們的表單驗證類群,當然也可以承載許多其他組件和模塊,實現完全解耦。

添加完成后,新建app/services/validators/Validator.php 文件:

 ?phpnamespace App/Services/Validators;abstract class Validator { protected $data; public $errors; public static $rules; public function __construct($data = null) $this- data = $data ?: /Input::all(); public function passes() $validation = /Validator::make($this- data, static::$rules); if ($validation- passes()) return true; $this- errors = $validation- messages(); return false;}

新建app/services/validators/PageValidator.php 文件:

 ?phpnamespace App/Services/Validators;class PageValidator extends Validator { public static $rules = array( title = required , body = required ,}

然后運行:

composer dump-autoload

這時候,就可以嘗試整個頁面上的所有操作啦!新建,編輯,查看,刪除,至此,pages管理部分全部完成!

大作業:目前Pages管理部分已經全部完成,但是Articles管理部分還是啥都沒有,嘗試模仿Pages的代碼,完成一個跟Pages一樣的管理系統。小提示:包含 控制器、視圖和表單驗證哦。等你完成了Articles管理部分,Laravel就真正入門啦!

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP !

相關推薦:

使用Laravel生成Gravatar頭像地址

如何解決Laravel的throttle中間件失效的問題

PHP中mb_detect_encoding函數的使用方法

以上就是Laravel 4 的Pages和表單驗證的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 抚宁县| 乐安县| 宽城| 和田市| 阜宁县| 上高县| 新安县| 于田县| 房山区| 玛曲县| 怀集县| 南昌县| 墨江| 蓬安县| 长宁县| 阜新| 唐海县| 商城县| 特克斯县| 芜湖市| 临湘市| 漠河县| 全南县| 平江县| 湖南省| 清涧县| 海丰县| 肇庆市| 阜新市| 和平区| 长寿区| 奎屯市| 略阳县| 尉氏县| 饶阳县| 柳江县| 徐闻县| 平乐县| 谷城县| 定边县| 眉山市|