首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Laravel4中,是否可以从控制器的单个功能访问两个型号?

在Laravel4中,是否可以从控制器的单个功能访问两个型号?
EN

Stack Overflow用户
提问于 2015-03-02 16:03:54
回答 1查看 78关注 0票数 1

所以我尝试使用Laravel4将值从一个表单插入到两个表中。这是我的Store() function.Am我做得对吗?我知道我应该使用两个控制器AddressController.php和PeopleController.php..,但是我能用一个控制器用一个表单插入两个表吗?

代码语言:javascript
运行
复制
    public function store()
    {
        $rules = array(
            'address_id'      => 'required',
            'contact_id' => 'required',
            'prefix'  => 'required',
            'firstname' => 'required',
            'middlename' => 'required',
            'lastname' => 'required',
            'suffix' => 'required',
            'occupation'  => 'required',
            'gender'  => 'required',
            'comment'  => 'required'

        );

        $validator = Validator::make(Input::all(), $rules);
        $user= Auth::user();
        if (!empty($user->id))
            $user_id=$user->id;

        // process the login
        /*if ($validator->fails()) {
            return Redirect::to('people/create')
                ->withErrors($validator);
        } else {*/
            // store
            $person = new Person;
            $person->user_id=$user_id;
            $person->address_id      =Input::get('address_id');
            //$person->contact_id      = Input::get('contact_id');
            $person->prefix = Input::get('prefix');
            $person->firstname  =Input::get('firstname');
            $person->middlename    =Input::get('middlename');
            $person->lastname    =Input::get('lastname');
            $person->suffix  =Input::get('suffix');
            $person->occupation  =Input::get('occupation');
            $person->gender     =Input::get('gender');
            $person->comment  =Input::get('comment');
            //$person->user_id =Input::get('user_id');
            $person->save();


            $validator = Validator::make($data = Input::all(), Address::$rules);

            $address->address1 = Input::get('address1');
            $address->address2 = Input::get('address2');
            $address->apt = Input::get('apt');
            $address->city = Input::get('city');
            $address->state = Input::get('state');
            $address->zip = Input::get('zip');
            $address->country = Input::get('country');

            $address->save();

            // redirect
            Session::flash('message', 'Successfully created new Employee!');
            //return Redirect::to('addresses/create');
            return Response::json($person);



    }
EN

回答 1

Stack Overflow用户

发布于 2015-03-02 16:10:20

只要定义了person和address模型之间的关系,就可以使用person模型的push()方法,该方法用于在单个步骤中保存多个相关模型

请注意,如果您为模型定义了fillable,还可以从代码中消除大量这些样板$person->prefix = Input::get('prefix');语句

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28805049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档