← Папярэдняя · Назад да README · Наступная →
Eloquent
Захаванне мадэлі аўтаматычна запісвае Str::slug(title) у slug праз SlugCast, выкарыстоўваючы канчатковае значэнне title пасля карыстальніцкіх сетараў назвы. Падтрымліваюцца карыстальніцкія мутатары назвы і saveQuietly(). Змена назвы змяняе slug. Напрыклад, Products ператвараецца ў products. Масавыя абнаўленні і ўстаўкі праз Query Builder абыходзяць захаванне мадэлі; выкарыстоўвайце метады мадэлі create(), update() або save().
Для выбару асобных стужак і запуску паводле раскладу задавайце назвы з рознымі непустымі slug. Стужку з назвай, якая дае пусты slug, нельга выбраць. Калі slug супадае ў некалькіх невыдаленых рэгістрацый, пошук кідае Illuminate\Database\MultipleRecordsFoundException; суфіксы аўтаматычна не дадаюцца.
Карыстальніцкая мадэль рэгістрацыі стужкі
Задайце для feeds.model мадэль праграмы, калі запісам рэгістрацыі стужак патрэбныя дадатковыя слупкі, пераўтварэнні, сувязі або метады. Карыстальніцкая мадэль павінна пашыраць DragonCode\LaravelFeed\Models\Feed.
namespace App\Models;
use DragonCode\LaravelFeed\Models\Feed as BaseFeed;
class Feed extends BaseFeed
{
protected $fillable = [
'class',
'title',
'expression',
'is_active',
'last_activity',
'is_foo',
'is_bar',
];
protected function casts(): array
{
return [
...parent::casts(),
'is_foo' => 'boolean',
'is_bar' => 'boolean',
];
}
}
Зарэгіструйце мадэль у config/feeds.php:
'model' => App\Models\Feed::class,
Дадайце карыстальніцкія слупкі ў табліцу стужак праз міграцыю праграмы. Пакіньце ў $fillable кожны атрыбут, дазволены для масавага прысваення.
FeedQuery выкарыстоўвае наладжаную мадэль для стварэння, пошуку, атрымання спіса, абнаўлення, выдалення і аднаўлення. Пры стварэнні запісу перадавайце спецыфічныя для праграмы значэнні праз extra. Яны прымяняюцца апошнімі і могуць перавызначыць аргументы метаду:
$feed = app(FeedQuery::class)->create(
class: SomeFeed::class,
title: 'Some',
expression: '0 */12 * * *',
extra: [
'is_foo' => true,
'is_bar' => true,
]
);
Мадэль праграмы таксама можа выкарыстоўваць звычайны API Eloquent:
use App\Models\Feed;
$feed = Feed::create([
'class' => SomeFeed::class,
'title' => 'Some',
'expression' => '0 */12 * * *',
'is_active' => true,
'is_foo' => true,
'is_bar' => true,
]);
Наладжаная мадэль вызначаецца падчас выканання. Статычны аналіз лічыць вынік FeedQuery::create() базавай мадэллю пакета. Калі для спецыфічных уласцівасцей праграмы патрэбна аўтадапаўненне, выкарыстоўвайце App\Models\Feed::create() або яўны лакальны тып.
Памер блока
Запыты да базы даных выкарыстоўваюць блокі, якія стандартна змяшчаюць 1000 элементаў. Памер можна змяніць, перавызначыўшы метад chunkSize:
use DragonCode\LaravelFeed\Feeds\Feed;
class UserFeed extends Feed
{
public function chunkSize(): int
{
return 500;
}
}