【问题标题】:Laravel best way to save data one to one relationships?Laravel 保存数据一对一关系的最佳方法?
【发布时间】:2015-03-22 08:37:44
【问题描述】:

术语表:

  • term_id
  • 姓名
  • 蛞蝓

Term_taxonomy 表:

  • term_taxonomy_id
  • term_id
  • 说明

我的术语模型:

public function TermTaxonomy(){
    return $this->hasOne('TermTaxonomy');
}

public function saveCategory($data){
    $validator = Validator::make($data,$this->rules);
    if($validator->passes()){
        $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 false;
        }
    }else{
        $this->errors = $validator;
        return false;
    } 
}

我的术语分类模型:

public function Term(){
    return $this->belongsTo('Term');
}

然后在我的 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.')->withErrors($category->validation_messages())->withInput();
    }
}

它可以工作,但我觉得我的 laravel 代码很丑,有没有最好的方法来保存数据一对一的关系以及如何使用它?

谢谢,对不起,我是 laravel 的新手。

【问题讨论】:

    标签: php laravel laravel-4


    【解决方案1】:

    我觉得很好..但是你可以直接保存你的关系而不

    $category_taxo->term_id = $this->lastCategoryId();
    

    试试这个:

    public function saveCategory($data){
        $validator = Validator::make($data,$this->rules);
        if($validator->passes()){
            $this->name = $data['name'];
            $this->slug = $data['slug'];
            if($this->save()){
                # new TermTaxonomy
                $TermTaxonomy = new TermTaxonomy;
                $TermTaxonomy->taxonomy = 'category';
                $TermTaxonomy->description = $data['description'];
                # Save related TermTaxonomy
                if($this->TermTaxonomy()->save($TermTaxonomy)){
                    return true;
                }else{
                    return false;
                }
            }else{
                    return false;
            }
        }else{
            $this->errors = $validator;
            return false;
        } 
    }
    

    【讨论】:

    • 如果使用 push() 呢? @goldlife
    猜你喜欢
    • 1970-01-01
    • 2017-05-09
    • 2015-03-05
    • 2015-12-06
    • 1970-01-01
    • 2015-04-12
    • 2013-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多