1. Go to this page and download the library: Download tightenco/parental 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/ */
tightenco / parental example snippets
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Parental\HasChildren;
// The "parent"
class User extends Model
{
use HasChildren;
//
}
namespace App\Models;
use Parental\HasParent;
// The "child"
class Admin extends User
{
use HasParent;
public function impersonate($user) {
//...
}
}
use App\Models\Admin;
// Returns "Admin" model, but reference "users" table:
$admin = Admin::first();
// Can now access behavior exclusive to "Admin"s
$admin->impersonate($user);
// First, we need to create a `type` column on the `users` table
Schema::table('users', function ($table) {
$table->string('type')->nullable();
});
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Parental\HasChildren;
// The "parent"
class User extends Model
{
use HasChildren;
protected $fillable = ['type'];
}
namespace App\Models;
use Parental\HasParent;
// A "child"
class Admin extends User
{
use HasParent;
}
namespace App\Models;
use Parental\HasParent;
// Another "child"
class Guest extends User
{
use HasParent;
}
use App\Models\Admin;
use App\Models\Guest;
use App\Models\User;
// Adds row to "users" table with "type" column set to: "App/Admin"
Admin::create(...);
// Adds row to "users" table with "type" column set to: "App/Guest"
Guest::create(...);
// Returns 2 model instances: Admin, and Guest
User::all();
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Parental\HasChildren;
class User extends Model
{
use HasChildren;
protected $fillable = ['type'];
protected $childTypes = [
'admin' => Admin::class,
'guest' => Guest::class,
];
}
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Parental\HasChildren;
class User extends Model
{
use HasChildren;
protected $fillable = ['parental_type'];
protected $childColumn = 'parental_type';
}
class NovaServiceProvider extends NovaApplicationServiceProvider
{
public function boot() {
parent::boot();
// ...
$this->app->register(\Parental\Providers\NovaResourceProvider::class);
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.