是否有可能从 Laravel4 中的一个控制器的单一函数访问两个模型 ?

因此 , 我试图用 Laravel4 将值从单个窗体插入两个表。 这是我的商店。我做得对吗 ? 我知道我应该使用两个控制器 AddressController. php 和 peopleController. php但是我可以用一个控制器来插入两个表吗 ?

    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 From: Is it possible to access two models from a single function of a controller in Laravel4?

3 Comments

  1. 你当然可以 ! 你看起来唯一缺少的就是一个 $address = new Address; , 也许可以把这个人和地址联系起来
  2. 只要您已经定义了人与地址模型之间的关系 , 那么您就可以使用人模型的推送方法 , 该方法的目的是将多个相关模型保存在一个步骤中

    请注意 , 如果您已经为模型定义了 fillable , 您也可以从代码中删除许多 Boilerplate $person->prefix = Input::get('prefix'); 语句

More articles:

  • 是否有可能返回一个响应并在 Laravel 调用一个函数?
  • 在使用 mod_rewrite 的 Apache.htm 访问文件中 , 是否有可能强迫 www 和强制一个域的 https ?
  • Laravel4 : 长期而言 , 使用存储库模式是否会损害我的项目 ?
  • 是否可能将两个删除函数绑定到一个按钮单击
  • 是否有可能在 React 中的函数组件中触发事件时打开另一个函数组件 ?
  • 从控制器调用外部 API 函数
  • 当我使用窗体模型绑定时, 是否必须填充控制器的方法?
  • 是否有可能在 iOS 中加载一个用户控制器
  • Laravel 5 另一个控制器的访问控制器方法
  • 是否可能实现一个可以在 C中打印任何类型数组的函数?
  • 如何访问模型与条件有很多关系?
  • 如何在 Laravel 5.2 中得到一个控制器功能模型?
  • 是否有可能编写一个函数, 它可以使用 n维数组?
  • 是否可能将数据提取到一个单独的函数中。
  • linkedin API : 是否可能同时为一个用户提供一个以上的访问令牌 ?
  • 是否有可能在更改一个函数后得到它的前一个版本 ?
  • IOC 绑定到足智多谋的控制器方法 , 而不是构造函数
  • 是否有可能开发一个浏览器插件 , 当用户试图访问一些网站时 , 可以自动将他们重定向到一个新的 url ?
  • 静态变量是否可以由非静态函数访问?
  • 如何检索 laravel4 中多态关系的多个所有者
  • 以编程方式访问另一个导航控制器的 RootViewController?
  • 是否有可能制作一个补丁文件 , 其中考虑到新的文件并将创建它们 ?
  • 条件语句是否属于 phpmvc 中的模型或控制器 ?
  • 是否可能对许多控制器使用相同的路径?
  • 是否可能为不同的文件夹设置一个 git 存储库 ?
  • 单击是否可以在函数中执行一个函数?
  • Android 中的模型类是否应该扩展一个可观察的类
  • 是否有可能在一个. java 文件中编写 2 个 Android 活动 ( UIs ) ? 如果不是为什么 ?
  • 是否可能只在对象移动时才有一个命令 ?
  • 是否有可能在我的 Azure 帐户上用代码创建一个新的 web 应用程序和数据库 ?