UrlMaker
URL Maker Trait
trait Cms\Traits\UrlMaker
Useful in models for generating a "url" attribute, automatically linked to a primary component used in the active theme. For example:
use \Cms\Traits\UrlMaker;
protected $urlComponentName = 'blogPost';
When declared in a model, the above will result in $model->url
magically
linking to the component that declares isPrimary = 1
in configuration.
[blogPost] isPrimary = "1"
The parameters passed to the component are supplied when overriding the
method getUrlParams
also within the model.
public function getUrlParams() { return [ 'id' => $this->id, 'hash' => $this->hash, ]; }
Properties
protected $url : string
URL cache
protected static $urlPageName : string
Page where detected component is found.
Methods
public getUrlAttribute () : string
Mutator for the "url" attribute. Returns the URL detected by the component.
public getUrlPageName () : string
Locates the page name where the detected component is found. This method uses the Cache service to improve performance.
public
resetUrlComponent (string $name, string $property = null
)
: void
Changes the component used for generating the URLs dynamically.
Property | Type | Description |
---|---|---|
$name | string |
string
|
$property | string |
string
|
public setUrlAttribute (string $value) : void
Explicitly set the URL for this model.
Property | Type | Description |
---|---|---|
$value | string |
string
|
public setUrlPageName (string $pageName) : void
Explicitly set the CMS Page to link to.
Property | Type | Description |
---|---|---|
$pageName | string |
string
|
protected makeUrl () : string
Generates a real URL based on the page, detected by the primary component.
The CMS Controller is used for this process passing the declared params.