Я хотел бы спросить, почему следующий код работает, перенаправляет нормально, и данные успешно добавлены:Почему переадресация показывает пустую страницу в модели laravel?
CategoriesController:
public function store()
{
$data = Input::all();
$category = new Term;
if($category->saveCategory($data)){
return Redirect::route('admin_posts_categories')->withSuccess('Category successfully added.');
}else{
return Redirect::route('admin_posts_categories')->withError('Failed to add category. #ErrorCode : 13');
}
}
Term Модель:
public function saveCategory($data){
$this->name = $data['name'];
$this->slug = $data['slug'];
if($this->save()){
$category_taxo = new TermTaxonomy;
$category_taxo->term_id = $this->lastCategoryId();
$category_taxo->taxonomy = 'category';
$category_taxo->description = $data['description'];
if($category_taxo->save()){
return true;
}else{
return false;
}
}else{
return "#Error Code : 4";
}
}
Где, как следующее только вставляет данные, но затем показывает пустую страницу и не перенаправляет:
КатегорииКонтроллер:
public function store()
{
$data = Input::all();
$category = new Term;
$category->saveCategory($data);
}
Term Модель
public function saveCategory($data){
$this->name = $data['name'];
$this->slug = $data['slug'];
if($this->save()){
$category_taxo = new TermTaxonomy;
$category_taxo->term_id = $this->lastCategoryId();
$category_taxo->taxonomy = 'category';
$category_taxo->description = $data['description'];
if($category_taxo->save()){
return redirect::route('admin_posts_categories')->withSuccess('Category successfully added.');
}else{
return redirect::route('admin_posts_categories')->withError('Failed to add category.');
}
}else{
return redirect::route('admin_posts_categories')->withError('#Error Code : 4.');
}
}
Кроме того, я хотел бы задать несколько взаимосвязанных вопросов, это мой код соответствует коррекции шаблонов проектирования, и где я должен поставить редирект, в модели или в контроллере?
Вы никогда не должны ставить логику перенаправления внутри своей модели. Я предлагаю вам посетить laracasts.com, если вы хотите узнать лучшие методы для Laravel – Laurence
Пожалуйста, не используйте форматирование встроенного кода для кодовых блоков, охватывающих несколько строк, потому что они выглядят очень уродливыми в этих случаях. Вместо этого используйте 4-пространственные блокированные блоки кода, например, выбрав свой код и нажав значок '{}' на панели инструментов редактора. –