PHP code example of kblais / laravel-helpers

1. Go to this page and download the library: Download kblais/laravel-helpers library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

kblais / laravel-helpers example snippets




namespace App;

use Illuminate\Database\Eloquent\Model;
use Kblais\LaravelHelpers\Eloquent\SingularTableNameTrait;

class User extends Model
{
    use SingularTableNameTrait;
}

namespace App;

use Illuminate\Database\Eloquent\Model;
use Kblais\LaravelHelpers\Eloquent\OrderByDefaultOrderTrait;
use Kblais\LaravelHelpers\Eloquent\OrderByDefaultOrderInterface;

class User extends Model implements OrderByDefaultOrderInterface
{
    use OrderByDefaultOrderTrait;

    /**
     * Defaults to :
     * - column: `created_at`
     * - asc: `true`
     */
    protected $defaultOrder = [
        'column' => 'last_login_at',
        'asc' => 'false',
    ];
}

namespace App;

use App\Cat;
use Illuminate\Database\Eloquent\Model;
use Kblais\LaravelHelpers\Eloquent\RelationshipHelpersTrait;

class User extends Model
{
    use RelationshipHelpersTrait;

    protected $fillable = [
        'name', 'email', 'cats',
    ];

    protected static function boot()
    {
        parent::boot();

        self::saved(function ($user) {
            $user->syncHasManyRelation('cats');
        });
    }

    public function cats()
    {
        return $this->hasMany(Cat::class);
    }

    public function setCatsAttribute($cats)
    {
        $this->setHasManyItems('cats', $cats);
    }
}

$user->create([
    'name' => 'John Doe',
    'email' => '[email protected]',
    'cats' => [
        [
            'name' => 'Garfield',
            'color' => 'orange',
        ],
        [
            'number' => 'Fuzzy',
            'color' => 'yellow',
        ],
    ],
]);

namespace App;

use App\Cat;
use Illuminate\Database\Eloquent\Model;
use Kblais\LaravelHelpers\Eloquent\RelationshipHelpersTrait;

class User extends Model
{
    use RelationshipHelpersTrait;

    protected $fillable = [
        'name', 'email', 'address',
    ];

    protected static function boot()
    {
        parent::boot();

        self::saved(function ($user) {
            $user->syncHasOneRelation('address');
        });
    }

    public function address()
    {
        return $this->hasOne(Address::class);
    }

    public function setAddressAttribute($address)
    {
        $this->setHasOneItem('address', $address);
    }
}

$user->create([
    'name' => 'John Doe',
    'email' => '[email protected]',
    'address' = [
        'number' => '18',
        'street' => 'rue Scribe',
        'city' => 'Nantes',
        'country' => 'France',
    ],
]);

'areRelated' => \Kblais\LaravelHelpers\Routing\Middleware\AreRelated::class,

use \Illuminate\Database\Model;

class Channel extends Model
{
    //
}

class Message extends Model
{
    public function channel()
    {
        return $this->belongsTo(Channel::class);
    }
}

Route::resource('channel.message', 'MessageController');

Route::resource('channel.message', 'MessageController')
    ->middleware('areRelated:channel,message');

Route::bind('discussion', function ($value) {
    return Channel::find($value);
});

Route::resource('discussion.message', 'MessageController')
    ->middleware('areRelated:discussion,message,channel');