Why more? Because I seem to use it in all my Laravel projects. And who doesn't want more Laravel? ;p
Example for compact(), with say, a payment...
$user->update($payment->compact());
// is the same as
$user->update(['payment_id' => $payment->getKey()]);
// or if your field was `default_payment_id` instead of `payment_id`...
$user->update($payment->compact('default_payment');
The unmorph($as) function is similar to compact()...
$order->update($transaction->unmorph('charge'));
// is the same as
$order->update(['charge_id' => $transaction->getKey(), 'charge_type' => get_class($transaction)]);
How often do your models belong to User
... a lot, right?
class Post extend Model
{
use BelongsToUser;
}
$post->user() // BelongsTo
$post->user // App\User
$post->isAccessibleBy($user) // boolean
Post::forUser($user) // Builder|Post
Post::forUsers($arr_or_col) // Builder|Post
Post::createForUser($user, [...]) // Post
The \More\Laravel\Traits\Model\Core
namespace is reasonable for global usage.
The \More\Laravel\Traits\Model
namespace is for the per model use cases.
Good Luck!
$ composer require dan/laravel-more dev-master
Yes
- Add the traits you like to base model.
- Or extend \More\Laravel\Model
No
- Make a base model
\App\Model
that extendsMore\Laravel\Model
or do ร la carte, anduse \More\Laravel\Traits\Model\*
as needed. - Or extend
\More\Laravel\Model
if you're really lazy. - Or use traits on specific models...blerg.
MIT.