PHP code example of drhtoo / laravel-metafield
1. Go to this page and download the library: Download drhtoo/laravel-metafield 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/ */
drhtoo / laravel-metafield example snippets
php artisan vendor:publish --provider="Drhtoo\MetaField\LaravelMetaFieldServiceProvider"
php artisan migrate
$product = Product::find(1);
$product->metas->price = 100;
echo $product->metas->price; // 100
// Product.php
use Drhtoo\MetaField\Models\Concerns\HasMeta;
class Product extends Model
{
use HasMeta;
protected $metaFields = [
'price' => null,
'is_sale' => false,
'sale_price' => null,
'color' => 'white',
];
}
$product = Product::find(1);
$product->price = 100;
echo $product->price; // 100
// Product.php
use Drhtoo\MetaField\Models\Concerns\HasMeta;
class Product extends Model
{
use HasMeta;
protected $metaFields = [
'price' => null,
'is_sale' => false,
'sale_price' => null,
'color' => null,
'sale_start' => null,
'sale_end' => null,
];
protected $casts = [
'price' => 'decimal:2',
'sale_price' => 'decimal:2',
'color' => 'array',
'sale_start' => 'datetime',
'sale_end' => 'datetime',
];
}
$product = Product::find(1);
$product->price = 100;
echo $product->price; // 100
// Product.php
use Drhtoo\MetaField\Models\Concerns\HasMeta;
class Product extends Model
{
use HasMeta;
protected $metaFields = [
'price' => null,
'is_sale' => false,
'sale_price' => null,
'color' => null,
'sale_start' => null,
'sale_end' => null,
];
protected $appends = [
'price', 'is_sale', 'sale_price', 'color', 'sale_start', 'sale_end'
];
}
// Livewire component blade view
<input type="number" wire:model="product.price" />
@error('product.price')
<span class="error">{{ $message }}</span>
@enderror
// Product.php
use Drhtoo\MetaField\Models\Concerns\HasMeta;
class Product extends Model
{
use HasMeta {
HasMeta::setAttribute insteadof HasTranslations;
}
protected $attributes = [
'title' => null,
'description' => null,
];
protected $metaFields = [
'price' => null,
'is_sale' => false,
'sale_price' => null,
'sale_description' => null,
];
public $translatable = [
'title',
'description',
'sale_description'
];
}
$product = Product::find(1);
$product->sale_description = 'This is sale product'; // set value to current locale
$product->setTranslation('sale_description', 'es', 'Este es un producto de venta');