Gitlab и Gitlab Runner поставлены с помощью Docker образов и подняты с помощью Docker-compose оба на одном сервере, то есть и Docker и Dokcer-compose на хосте стоят 100%.
Дмитрий, Да, гитлаб свой, верится на своем сервере, гитлаб и гитлаб ранер тоже были мною поставлены через docker-compose на одном сервере, просто написал 2 контейнера, один для гитлаба, второй для ранера, у обоих одинаковый нетворк и они друг друга видят, то есть они оба вместе работают, ну и так как ранер сам крутится на докере, то вроде получается что и докер у него есть.
Дмитрий, ну у меня все контейнеры описаны в docker-compose.yml, поэтому и команда для работы с ним вызывается, конкретно это pipline просто билдит все контейнеры, естественно я его потом буду дописывать и он будет обрастать большим количеством команд и логики, но пока даже эта одна команда у меня не хочет работать. Облазив весь интернет я так и не нашел решения поэтому решил снова спросить. Просто докер использовать я не смогу, ибо опять же все Dockerfile-ы лежать в отдельных папках и все контейрны описаны в docker-compose.yml.
Ура! Очень вам благодарен что помогли мне еще не совсем шарящему как он понял бекендеру. Все заработало и все заработало верно, хорошо хоть тест для этого дела уже давно готов был. Еще раз примите мои благодарности!
Дмитрий, Я просто нить решения еще вначале потеря, поэтому сам не лезу лишний раз, после уже думаю разберусь что-бы вот так не дергать людей по пустякам.
Так вот функция связи с курса к модулям:
public function modules(): HasMany
{
return $this->hasMany(Module::class, 'course_id');
}
Собственно обратная ей только с модуля к курсу:
public function courses(): HasOne
{
return $this->hasOne(Course::class);
}
Теперь связь модуля с уроком:
public function lessons(): HasMany
{
return $this->hasMany(Lesson::class);
}
Обратная:
public function modules(): HasOne
{
return $this->hasOne(Module::class);
}
Связь урока с тестом:
public function tests(): HasMany
{
return $this->hasMany(Test::class);
}
Обратная:
public function lesson(): BelongsTo
{
return $this->belongsTo(Lesson::class);
}
И завершающая связь теста с вопросом(many-to-many):
public function questions(): BelongsToMany
{
return $this->belongsToMany(Question::class, 'test_question');
}
Обратная:
public function tests(): BelongsToMany
{
return $this->belongsToMany(Test::class, 'test_question');
}
Да я понимаю вас, но ларка вас увы понять не хочет
SQLSTATE[42P01]: Undefined table: 7 ERROR: missing FROM-clause entry for table "courses"
LINE 1: select * from "questions" inner join "modules" on "courses"....
^ (SQL: select * from "questions" inner join "modules" on "courses"."id" = "modules"."course_id" inner join "lessons" on "modules"."id" = "lessons"."module_id" inner join "tests" on "tests"."lesson_id" = "lessons"."id" inner join "questions" on "questions"."test_id" = "tests"."id" where "modules"."course_id" = bf171aa3-cc39-4a9a-88b8-f5606de1c955 and "modules"."course_id" is not null)
Опять эта петрушка, даже не представляю как мог надоесть уже
SQLSTATE[42P01]: Undefined table: 7 ERROR: missing FROM-clause entry for table "courses"
LINE 1: select * from "questions" inner join "modules" on "courses"....
^ (SQL: select * from "questions" inner join "modules" on "courses"."id" = "modules"."course_id" inner join "lessons" on "modules"."id" = "lessons"."module_id" inner join "tests" on "tests"."lesson_id" = "lessons"."id" inner join "questions" on "questions"."test_id" = "tests"."id" where "courses"."course_id" = 94a8d245-fbba-4002-8d9d-743b3e9d93e7 and "courses"."course_id" is not null)
Дмитрий, Все равно ошибка
SQLSTATE[42P01]: Undefined table: 7 ERROR: missing FROM-clause entry for table "courses"
LINE 1: select * from "questions" inner join "modules" on "courses"....
^ (SQL: select * from "questions" inner join "modules" on "courses"."id" = "modules"."course_id" inner join "lessons" on "modules"."id" = "lessons"."module_id" inner join "tests" on "tests"."lesson_id" = "lessons"."id" inner join "questions" on "questions"."test_id" = "tests"."id" where "questions"."courses"."course_id" = 6ef64b1c-48aa-4a45-ad57-f38a5c8f53cb and "questions"."courses"."course_id" is not null)
Дмитрий, Точно! что-то жестко тупанул, прошу прощения, но помню что пока разбирался и нормально писал, то есть как вы, но все равно ошибку такую выдавало
Вот она полная
SQLSTATE[42P01]: Undefined table: 7 ERROR: missing FROM-clause entry for table "courses"
LINE 1: select * from "questions" inner join "modules" on "courses"....
^ (SQL: select * from "questions" inner join "modules" on "courses"."id" = "modules"."course_id" inner join "lessons" on "modules"."id" = "lessons"."module_id" inner join "tests" on "tests"."lesson_id" = "lessons"."id" inner join "questions" on "questions"."test_id" = "tests"."id" where "questions"."test_id" = 6b78b92d-e37a-4771-80d0-6ac5e937ca65 and "questions"."test_id" is not null)
ag033, А ну и я подозреваю что из-за того что связь many-tomany на "заключающем" этапе мой джойн прописан неверно, но я не знаю как верно к своему стыду. Ну и может он там не нужен этот крайний джойн, но и без него та же ошибка.
Дмитрий, Сотрите есть модель Course из нее нужно получить модели Question, но напрямую они не вяжутся, а вяжется Course к Module (One-tomany)(у одного курса может быть несколько модулей, но у одного модуля лишь один курс) далее к Module вяжется Lesson(One-tomany)(у одного модуля может быть несколько уроков, но у одного урока лишь один модуль) далее к уроку так же как и две предыдущие связи вяжутся тесты и к тестам уже вяжутся вопросы только они уже many-tomany и именно эти вопросы которые по этой цепи связаны с курсом нужно получить.
А вот мои джойны
public function questions()
{
return $this->hasMany(Question::class, 'test_id')
->join('modules', 'courses.id', 'modules.id')
->join('lessons', 'modules.id', 'lessons.id')
->join('tests', 'lessons.id', 'tests.id')
->join('questions', 'lessons.id', 'questions.id');
}
Дмитрий, Конечно уже надоел тупить,но при использовании join получаю ошибку:
SQLSTATE[42P01]: Undefined table: 7 ERROR: missing FROM-clause entry for table "courses"
А когда разбирался в HasManyThrough немного не понял то что там же можно получить модели через одну таблицу, ну то есть из модели один через модель два можно получить третьи модели, но у меня же более глубокая вложенность аж через 3 промежуточные таблицы, то есть в общей сумме их пять, первая из которой через три промежуточные нужно получить записи пятой.
Дмитрий, Немного не понял вопроса. Просто связи грубо говоря вниз уходящие, то есть есть главная модель из которой нужно получить модели связанные с главной посредством других моделей/таблиц.
Связь вида Главная модель->вторая модель->третья модель->четвертая модель. Нужно из главной модели получить все модели четвертой связанные с главной вышеупомянутой цепью.