gandh1pl / cakephp-slugs
此扩展包含辅助类,可以轻松地在 CakePHP 3 项目中实现动态 slugs(从数据库加载)。
dev-master
2017-02-22 03:15 UTC
Requires
- cakephp/cakephp: >=3.1.0 <4.0
This package is auto-updated.
Last update: 2024-09-14 18:42:20 UTC
README
此扩展提供辅助类,以轻松在 CakePHP 3 项目中实现动态 slugs。
动态 slugs 指的是从数据库中加载的 slugs。
配置
- 在您的
config/routes.php文件中,使用此规则代替fallbacks规则
$routes->connect('/:controller/:action/*', ['action' => 'index'], ['routeClass' => 'gandh1pl\Cake\Slugs\Routing\Route\SlugRoute']);
- 在
App\Model\Table命名空间中创建文件RoutesTable.php并粘贴以下代码
namespace App\Model\Table;
/**
* Class RoutesTable
*
* @package App\Model\Table
*/
class RoutesTable extends \gandh1pl\Cake\Slugs\Model\Table\RoutesTable
{
/**
* Cache engine name. Set to false if you don't wanna to use query's caching.
* @var string|false
*/
protected $_cacheEngine = 'slugs';
/**
* Name of route's table. Defaults to `routes`, but you can change it.
* @var string
*/
protected $tableName = 'routes';
/**
* Preferred hydrate option when making query to database. Defaults to false.
* @var bool
*/
protected $defaultHydrate = false;
}
- 在
App\Model\Entity命名空间中创建文件Route.php并粘贴以下代码
namespace App\Model\Entity;
class Route extends \gandh1pl\Cake\Slugs\Model\Entity { }
- 在您想使用 slugs 的表类中(例如 ArticleTable.php),在
initialize()方法中
$this->addBehavior('Slug', [
'className' => '\gandh1pl\Cake\Slugs\Model\Behavior\SlugBehavior',
'urlTemplate' => '/article/view/:id',
'urlParameters' => ['id' => 'entity_id'],
'attributesToGenerateFrom' => ['category.name', 'title', 'id'],
// 'minimumAttributesToGenerateFrom' => 1,
// 'generateSlugOnInsert' => true,
// 'routeRelationBindingKey' => 'route_id',
]);