PHP code example of dedmytro / laravel-model-related-fields

1. Go to this page and download the library: Download dedmytro/laravel-model-related-fields 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/ */

    

dedmytro / laravel-model-related-fields example snippets


use Illuminate\Database\Eloquent\Model;
use DeDmytro\LaravelModelRelatedFields\RelatedField;
use DeDmytro\LaravelModelRelatedFields\Traits\HasRelatedFields;
// ...

class Order extends Model
{
    use HasRelatedFields;
    
    // ...
    
    protected function addRelatedFields(): array
    {
        return [
            'country_currency' => 'event.company.country.currency',
            'total' => new RelatedField('items.total', function ($query) {
                $query->selectRaw('SUM(price)');
            }),
        ];
    }

use Illuminate\Database\Eloquent\Model;
use DeDmytro\LaravelModelRelatedFields\RelatedField;
use DeDmytro\LaravelModelRelatedFields\Traits\HasRelatedFields;
// ...

class Order extends Model
{
    use HasRelatedFields;
    
    // ...
    
    protected $relatedFields = [
      'country_currency' => 'event.company.country.currency',
   ];
    
    protected function addRelatedFields(): array
    {
        return [
            'total' => new RelatedField('items.total', function ($query) {
                $query->selectRaw('SUM(price)');
            }),
        ];
    }

$order = Order::first();

[
    "id" => 1,
    // ...
    "country_currency" => "USD",
    "total" => 25.00,
]

'enabled' => false

protected $enableRelatedFields = false;

$order = Order::withoutRelatedFields()->first();

$order = Order::withRelatedFields()->first();