PHP code example of klaude / eloquent-preferences
1. Go to this page and download the library: Download klaude/eloquent-preferences 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/ */
klaude / eloquent-preferences example snippets
// ...
return [
// ...
'providers' => [
// ...
KLaude\EloquentPreferences\EloquentPreferencesServiceProvider::class,
],
// ...
];
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Schema\Blueprint;
use KLaude\EloquentPreferences\Preference;
// ...
Model::getConnectionResolver()
->connection()
->getSchemaBuilder()
->create((new Preference)->getQualifiedTableName(), function (Blueprint $table) {
$table->increments('id');
$table->string('preference');
$table->string('value');
$table->morphs('preferable');
$table->timestamps();
});
use KLaude\EloquentPreferences\HasPreferences;
// ...
class MyModel extends Model
{
use HasPreferences;
// ...
}
// Retrieving preferences via Eloquent
/** @var KLaude\EloquentPreferences\Preference $myPreference */
$myPreference = MyModel::find($someId)->preferences()->where('preference', 'my-preference')->get();
// Saving preferences via Eloquent
$preference = new Preference;
$preference->preference = 'some preference';
$preference->value = 'some value';
$myModel->preferences()->save($preference);
/** @var Illuminate\Database\Eloquent\Collection|KLaude\EloquentPreferences\Preference[] $preferences */
$preferences = Preference::whereIn('preference', ['foo', 'bar'])->orderBy('created_at')->get();
$numberOfFoos = $myModel->getPreference('number-of-foos');
$myModel->prefers('Star Trek over Star Wars') ? liveLongAndProsper() : theForceIsWithYou();
$myModel->setPreference('foo', 'bar');
$myModel->setPreferences([
'foo' => 'bar',
'bar' => 'baz',
]);
$myModel->clearPreference('some preference');
$myModel->clearPreferences(['some preference', 'some other preference']);
$myModel->clearAllPreferences();
// $myPreference = 'some default value'
$myPreference = $myModel->getPreference('unknown preference', 'some default value');
class MyModel extends Model
{
use HasPreferences;
// ...
protected $preference_defaults = [
'my-default-preference' => 'my-default-value',
];
}
// ...
// $myPreference = 'my-default-value'
$myPreference = $myModel->getPreference('my-default-preference');
// $myPreference = 'fallback value'
$myPreference = $myModel->getPreference('my-unstored-preference', 'fallback value');
class MyModel extends Model
{
use HasPreferences;
// ...
protected $preference_casts = [
'boolean-preference' => 'boolean',
'floating-point-preference' => 'float',
'date-preference' => 'date',
];
}
const MODEL_PREFERENCE_HIDDEN_ATTRIBUTES = 'created_at,updated_at';
$ php artisan vendor:publish
$ php artisan migrate