Giter VIP home page Giter VIP logo

laravel-more's Introduction

More (for Laravel)

Why more? Because I seem to use it in all my Laravel projects. And who doesn't want more Laravel? ;p

Highlights

compact()

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');

unmorph($as = null)

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)]);

BelongsToUser

How often do your models belong to User... a lot, right?

class Post extend Model 
{
    use BelongsToUser;
}

Usage

$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

And of course there is more included

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

$ composer require dan/laravel-more dev-master

Implementation options

Do you have a base model? e.g. App\Model

Yes

  • Add the traits you like to base model.
  • Or extend \More\Laravel\Model

No

  • Make a base model \App\Model that extends More\Laravel\Model or do ร  la carte, and use \More\Laravel\Traits\Model\* as needed.
  • Or extend \More\Laravel\Model if you're really lazy.
  • Or use traits on specific models...blerg.

Contributors

License

MIT.

laravel-more's People

Contributors

colepizzarella avatar danrichards avatar diogogomeswww avatar forgiv avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.