Перайсці да асноўнага змесціва
Версія: 1.x

← Папярэдняя · Назад да 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;
}
}

Глядзіце таксама​