169 похожих чатов

Ребят всем привет, пытаюсь заполнить таблицу в которой пара значений

не может повторяться, т.е у меня есть таблица, в которой такие поля:

id area_id team_id
1 1 1
2 1 1(такого быть не может)
3 1 2 (такое быть может)
4 2 1(такое быть может)

Миграцию сделал, все работает, вручную добавлял дубликаты нельзя вставлять, т.е как выше описал.
Не получается сделать сидер:
пишу так: (возможно слишком сложно придумал)

TeamsAreaFactory.php
<?php

namespace Database\Factories;

use App\Models\TeamsArea;
use Illuminate\Database\Eloquent\Factories\Factory;

/**
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\User>
*/




class TeamsAreaFactory extends Factory
{
protected $model = TeamsArea::class;

/**
* Define the model's default state.
*
* @return array<string, mixed>
*/


public function definition(): array
{
$result = [];
$array = [];

for ($i = 0; $i < 10; $i++) {
for ($j = 0; $j < 200; $j++) {
$num1 = rand(1, 100);
$num2 = rand(1, 2000);
$combination = [$num1, $num2];

if (!in_array($combination, $array)) {
$array[] = $combination;
}
}
}

foreach ($array as $pair) {
$num1 = $pair[0];
$num2 = $pair[1];

$result[] = [
'area_id' => $num1,
'team_id' => $num2,
];
}

return $result;
}
}
TeamAreaSeeder.php
<?php
namespace Database\Seeders;
use App\Models\TeamsArea;
use Illuminate\Database\Seeder;
class TeamsAreaSeeder extends Seeder
{
public function run(): void
{
TeamsArea::factory()->times(2000)->create();
}

}

Сейчас у меня такая ошибка и не понимаю почему так, неужели скрипт требует так много памяти?
Ошибка:
Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes)

at database/factories/TeamsAreaFactory.php:45
41▕ }
42▕
43▕ foreach ($array as $pair) {
44▕ $num1 = $pair[0];
➜ 45▕ $num2 = $pair[1];
46▕
47▕ $result[] = [
48▕ 'area_id' => $num1,
49▕ 'team_id' => $num2,

4 ответов

20 просмотров

𝔸ртемий, мы обнаружили что Ваше сообщение больше чем наполовину состоит из кода. Рекомендуем сохранять примеры кода на внешних источниках, например, https://paste.laravel.io

выглядит как пивот для отношений много ко многим... Зачем тебе отдельная модель, фактори и сидер? Почему бы не создать модели Area и Team и не соединить их? https://laravel.com/docs/10.x/eloquent-factories#many-to-many-relationships

Dmytro 🇺🇦
выглядит как пивот для отношений много ко многим.....

нуу, так и есть, там по сути связь многие ко многим

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта