The
optional function accepts any argument and allows you to access properties or call methods on that object. If the given object is null, properties and methods will return null instead of causing an error:<?php return optional($user->address)->street;
{!! old('name', optional($user)->name) !!}
<?php return [
'title' => $this->title(),
'path' => $this->path(),
'parent_path' => optional($this->parent())->path(),
'basename' => $this->basename(),
];
}
<?php protected function searchIndex()
{
return optional($this->data->searchIndex())->name();
}
protected function assets()
<?php public function avatarFieldUrl()
{
return optional($this->avatarFieldValue()->value())->url();
}
<?php private function isOnAllowedRoute()
{
if (! $route = optional(request()->route())->getName()) {
return false;
}
<?php public function orderable()
{
return optional($this->structure())->maxDepth() === 1;
}
public function sortField($field = null)
<?php $site = $site ?? $this->sites()->first();
return optional($mount->in($site))->url();
}
public function uri($site = null)
<?php $site = $site ?? $this->sites()->first();
return optional($mount->in($site))->uri();
}
public function showUrl()
<?php private function dispatchEntryBlueprintFoundEvent($blueprint, $entry)
{
$id = optional($entry)->id() ?? 'null';
$blink = 'collection-entry-blueprint-'.$this->handle().'-'.$blueprint->handle().'-'.$id;
<?php 'locale' => $this->locale(),
'origin' => $this->hasOrigin() ? $this->origin()->id() : null,
'slug' => $this->slug(),
'date' => optional($this->date())->format('Y-m-d-Hi'),
'published' => $this->published(),
'path' => $this->initialPath() ?? $this->path(),
'data' => $this->data(),
<?php tap($structure->in($this->locale()), function ($tree) {
$parent = $this->parent();
if (optional($parent)->isRoot()) {
$parent = null;
}
$this->page()->pages()->all()->each(function ($child) use ($tree, $parent) {
<?php $parent = null;
}
$this->page()->pages()->all()->each(function ($child) use ($tree, $parent) {
$tree->move($child->id(), optional($parent)->id());
});
$tree->remove($this);
})->save();
<?php $this->taxonomize();
optional(Collection::findByMount($this))->updateEntryUris();
foreach ($afterSaveCallbacks as $callback) {
$callback($this);
<?php return $this
->fluentlyGetOrSet('template')
->getter(function ($template) {
return $template ?? optional($this->origin())->template() ?? $this->collection()->template();
})
->args(func_get_args());
}
<?php return $this
->fluentlyGetOrSet('layout')
->getter(function ($layout) {
return $layout ?? optional($this->origin())->layout() ?? $this->collection()->layout();
})
->args(func_get_args());
}
<?php {
$array = Arr::removeNullValues([
'id' => $this->id(),
'origin' => optional($this->origin())->id(),
'published' => $this->published === false ? false : null,
'blueprint' => $this->blueprint()->handle(),
]);