我想问为什么以下代码有效,正常重定向,并且数据已成功插入:
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');
}
}
术语模型:
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";
}
}
以下内容仅插入数据,但随后显示空白页面并且不重定向:
CategoriesController:
public function store()
{
$data = Input::all();
$category = new Term;
$category->saveCategory($data);
}
期限模型
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.');
}
}
此外,我想问几个相关的问题,我的代码是否符合正确的设计模式,我应该在模型或控制器中的重定向位置?
答案 0 :(得分:1)
尝试重定向:
1. return Redirect::back()->withSuccess('Category successfully added.');
OR
2. return Redirect::to(URL::to('admin_posts_categories'))->withSuccess('Category successfully added.');
在Controller中添加重定向登录。即使你想放入模型(不推荐),也要使用Ardent Hook函数,即afterSave()。
答案 1 :(得分:0)
首先,永远不要在模型中放置重定向逻辑。模型用于放置业务逻辑。第二件事是检查你是否在route.php中创建了admin_posts_categories
的路由以及如何调用视图。如果可能,请发布您的路线代码。
答案 2 :(得分:0)
我建议不要在模型中添加重定向。所以第一个解决方案将是你所拥有的两个中最好的。
但回到你的问题。它显示一个空白页面,因为您的商店功能没有返回任何内容。 return $category->saveCategory($data);
但如前所述,此方法不是最佳做法。
一个很好的提示是看看Laracasts,这将教会你所知道的一切,不了解和更多关于Laravel。