承接 earlybirdmvp/foundry 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

earlybirdmvp/foundry

最新稳定版本:v0.3.0

Composer 安装命令:

composer require earlybirdmvp/foundry

包简介

A simple but powerful CRUD tool for Laravel

README 文档

README

Easily perform CRUD tasks on Eloquent models

This is a replacement for Laravel's Resource Controllers, which are very lightweight.

Installation

Add "earlybirdmvp/foundry" to your composer.json file and run composer update.

Then add these lines to your app/start/global.php file:

View::addLocation(base_path().'/vendor/earlybirdmvp/foundry/views');
View::addNamespace('foundry', base_path().'/vendor/earlybirdmvp/foundry/views');

Getting Started

First create your Foundry model.

class Product extends Eloquent {
    use Earlybird\Foundry;
}

Then create a Controller:

class ProductController extends BaseController {
    use Earlybird\FoundryController;
}

Finally add a Route resource group. See http://laravel.com/docs/controllers#resource-controllers All of the "only", "except", etc. options can be used.

Route::resource('product', 'ProductController');

That's all!

Now you simply need to go to the URL product and you will see a paginated list of all Product objects. There is a button to create a new product, and columns with unique indexes link to edit the individual resource.

Features

  • Works well with Bootstrap classes
  • This is meant to be a CMS, not a DB admin tool. Therefore the Eloquent $hidden and $guarded arrays are respected and not visible or editable, respectively.
  • If a column name has a comment, that is shown instead (can be used to create user-friendly labels)
  • Supported data types:
bigint, char, date, decimal, enum, int, text, tinyint, varchar
  • Validation is built in. NOT NULL columns are considered "required", any column containing "email" inside its name must be a valid email address, and columns with unique indexes are checked
  • Validation errors are displayed next to the problematic input
  • Very basic belongsTo relationships are supported. The column must end in _id and must have the same prefix as the name of the relationship. For example, if the products table has a category_id column, and this Eloquent relationship then it will work:
class Product extends Eloquent {
    use Earlybird\Foundry;

    public function category() {
        return $this->belongsTo('Category');
    }
}
  • These belongsTo relationships are shown as select dropdowns where the value is the id and the option text is the name attribute. If the table does not have a name column, or you wish to change what is displayed, you can use $appends:
class Product extends Eloquent {
    use Earlybird\Foundry;

    protected $appends = array(
        'foundry_value',
    );
    public function getFoundryValueAttribute() {
        return $this->sku . ':  ' . $this->name;
    }
}

Options

Controller

  • Specify the model with protected $model. Default is class name with "Controller" stripped off.
  • Set the number of items shown per page with protected $per_page. Default 10.
  • If you wish to detect updates, create a detectChange function. This is called before save() so that you can compare the old and new values
class OrderController extends BaseController {
    use Earlybird\FoundryController;

    public function detectChange() {
        // Email customer update that order status was changed
    }
}

Todo

  • sort and filter the index page
  • support more data types
  • improve validation for dates
  • improve support for relationships
  • delete resources
  • bulk updates and deletes
  • more flexible layout

统计信息

  • 总下载量: 53
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: Apache-2.0
  • 更新时间: 2015-02-16