Cms\Traits\UrlMaker
Overview
URL Maker Trait
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,
];
}
Protected Properties
protected string $url
URL cache
protected static string $urlPageName
Page where detected component is found.
Public Methods
public getUrlAttribute()
public getUrlAttribute(): string
Mutator for the "url" attribute. Returns the URL detected by the component.
public getUrlPageName()
public getUrlPageName(): string
Locates the page name where the detected component is found. This method uses the Cache service to improve performance.
public resetUrlComponent()
public resetUrlComponent(string $name, string $property = null): void
Changes the component used for generating the URLs dynamically.
public setUrlAttribute()
public setUrlAttribute(string $value): void
Explicitly set the URL for this model.
public setUrlPageName()
public setUrlPageName(string $pageName): void
Explicitly set the CMS Page to link to.
Protected Methods
protected makeUrl()
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.