Вот как это настроено.
- У шага есть категория
- В категории есть раздел
- В разделе есть несколько вопросов
Я думал У меня все работало в файлах моей модели, но, к сожалению, я столкнулся с ошибкой целостности с моими внешними ключами.
Мои модели названы:
Step.php
StepCategory.php
StepSection.php
StepQuestion.php
Я не совсем уверен, как установить мои отношения "многие к одному" или что к чему относится.
Мои имена таблиц базы данных следующие:
steps
step_categories
step_sections
step_questions
Я сталкиваюсь с этой ошибкой, когда удаляю родительскую запись чего-либо ... Если я удаляю шаг, он должен удалить категорию, разделы и вопросы, связанные с ними.Если я удаляю категорию, она должна удалить раздел и вопросы.Если я удаляю раздел, он удаляет все вопросы.
В моей таблице step_categories
у меня есть столбец внешнего ключа с именем step_id
.
В моей таблице step_sections
у меня естьстолбец внешнего ключа с именем category_id
.
В моей таблице step_questions
у меня есть столбец внешнего ключа с именем section_id
.
Имя моего внешнего ключа в моей таблице step_categories
равно step_categories_step_id_foreign
.
Имя моего внешнего ключа в моей таблице step_sections
равно step_sections_category_id_foreign
.
Имя моего внешнего ключа в моей таблице step_questions
еще не настроено, поскольку мне еще предстоитсделать эту часть сайта еще.В настоящее время я застрял в разделе с разделами.
Моя destroy()
функция в моем файле StepsController.php
:
public function destroy($id)
{
// Find the step by the ID
$step = Step::find($id);
// Find all the categories and delete them.
$step->category()->delete();
// Delete the step
$step->delete();
// Flash the Session
Session::flash('success', 'The step has been successfully deleted.');
// Return Redirect to the index page
return redirect()->route('steps.index');
}
Вот как выглядят мои модели ... Этонасколько я понял ...: (
Step.php
class Step extends Model
{
// Tell the model what table to use
protected $table = 'steps';
// Define the relationship between steps and step categories
public function category() {
return $this->hasMany('App\StepCategory');
}
}
StepCategory.php
class StepCategory extends Model
{
// Tell the model what table to use
protected $table = 'step_categories';
// Define the relationship between step categories and steps
public function step() {
return $this->hasOne('App\Step', 'id', 'step_id');
}
// Define the relationship between steps categories and sections
public function section() {
return $this->hasMany('App\StepSection');
}
}
и мой StepSection.php
class StepSection extends Model
{
// Tell the model what table to use
protected $table = 'step_sections';
// Define the relationship between step sections and step categories
public function category() {
return $this->hasOne('App\StepCategory', 'id', 'category_id');
}
}
Так что это законно столько информации, сколько я могу дать, я думаю, что решит проблему. Если вам нужна дополнительная информация, чтобы помочь мне установить эти отношения, дайте мне знать.
Пока яЯ могу удалить шаг, и он будет удалять категорию, если к категории нет прикрепленных к ней разделов. Однако я не могу удалить шаг или категорию, если к ней прикреплены какие-либо разделы.: / Не знаючто происходит.