alexwenzel / cmsbasics
此包的最新版本(0.0.1-beta)没有可用的许可信息。
一个用于Laravel的包,我用它来构建重复的资源项。
0.0.1-beta
2014-10-07 11:03 UTC
Requires
- php: >=5.4.0
- illuminate/support: 4.2.*
This package is not auto-updated.
Last update: 2024-09-24 01:48:19 UTC
README
一个用于Laravel的包,我用它来构建重复的资源项。
模型
为您的资源项创建一个模型。
资源模型应该有一个静态的 $rules
属性,其中包含所有资源规则。
class Post extends \Eloquent { protected $table = 'posts'; protected $fillable = ['title', 'body']; public static $rules = [ 'title' => 'required', 'body' => 'required', ]; }
控制器
通过扩展基本资源控制器创建一个新的控制器。在构造函数中,您可以指定一些设置。
dependency
=> 您的资源项模型resource_name
=> 您的资源标识符,您在Route::resource()
中使用它view_dir
=> 资源视图的路径
use Alexwenzel\Cmsbasics\Controllers\Resource; class PostsController extends Resource { public function __construct(Post $model) { parent::__construct([ 'dependency' => $model, 'resource_name' => 'posts', 'view_dir' => 'path.to.views', ]); } }
然后在您的路由中注册控制器。
Route::resource('posts', 'PostsController');
自定义行为
您可以通过重写特定方法来自定义基本资源控制器的行为
protected function _index_items() protected function _store_data() protected function _store_validator($data) protected function _store_fails($data, $validator) protected function _store_finished($data, $model) protected function _update_data() protected function _update_validator($id, $data) protected function _update_fails($data, $model, $validator) protected function _update_finished($data, $model) protected function _destroy_finished()
事件
以下事件在基本资源控制器内部触发
index
[resource_name].index
create
[resource_name].create
store
[resource_name].store
传递新创建的资源作为第一个参数。
show
[resource_name].show
传递请求的资源作为第一个参数。
edit
[resource_name].edit
传递请求的资源作为第一个参数。
update
[resource_name].update
传递更新的资源作为第一个参数。
destroy
[resource_name].destroy
视图
此包为所有操作(index,create,show,edit)提供了默认视图。将包视图发布为一个起点。
php artisan view:publish alexwenzel/cmsbasics
将包视图复制到新文件夹并自定义它们。
class PostsController extends Resource { public function __construct(Post $model) { parent::__construct([ 'dependency' => $model, 'resource_name' => 'posts', 'view_dir' => 'path.to.views', ]); } }