Collection of helper classes to make fighting the good fight even easier.
You can install the package via composer:
composer require always-open/sidekick
Sidekick version | PHP Version |
---|---|
1.x | PHP 7.4 and 8.x |
4.x | PHP 8.x+ |
$ids = AlwaysOpen\Helpers\Strings::stringIdsToCollection('1,3,45, asdf,66,1,45,3');
var_dump($ids);
This helper stops redirect loops where a url()->previous()
might be used but the user could have directly input the
url so previous
and current
are the same. This helper stops that from happening while allowing you to specify where
to go if that scenario happens.
If the user can edit user profiles and reach it from multiple screens the redirect response after saving might look like this:
return response()->redirectTo(
AlwaysOpen\Helpers\Routes::toRouteIfBackIsLoop('user.report')
);
Here the user will either go to their previous URL or get sent to the user report.
Add the trait to your model:
<?php
namespace App\Models;
namespace AlwaysOpen\Sidekick\Models\Traits\ByName;
class OrderStage extends Model
{
use ByName;
const NEXT_DAY = 'Next Day';
...
}
Use the trait to get the model by its name:
$overnight = OrderStage::byName('overnight');
Works nicely when you're doing work with consts:
$overnight = OrderStage::byName(OrderStage::NEXT_DAY);
This trait is good if you need to update a last updated timestamp on related models such as a parent child relationship or line items on a document.
In the example class Docuemnt
has multiple LineItem
instances as children.
Within this exmaple you will need to override the getRelationshipsToUpdate
method:
class LineItem extends Model
{
use CascadeUpdate;
public function getRelationshipsToUpdate() : array
{
return [
'Document',
];
}
public function CascadeUpdate() : HasOne
When an instance of LineItem is saved the UPDATED_AT
column on the owner Document
will be updated as well.
This trait ensures that all instances have a sort column value that is next in line. Future TODO is to make it update other instances when one of their sort values is updated to keep all in proper order.
composer test
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
Please review our security policy on how to report security vulnerabilities.
The MIT License (MIT). Please see License File for more information.