Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Laravel INSERT查询添加不相关的列,使查询失败_Mysql_Laravel_Laravel 4_Sql Update_Sql Insert - Fatal编程技术网

Mysql Laravel INSERT查询添加不相关的列,使查询失败

Mysql Laravel INSERT查询添加不相关的列,使查询失败,mysql,laravel,laravel-4,sql-update,sql-insert,Mysql,Laravel,Laravel 4,Sql Update,Sql Insert,我遇到的错误是: SQLSTATE[42S22]:未找到列:中的1054未知列“user\u id” “字段列表”(SQL:updatecompanyssetuser\u id=3,updated\u at =2014-03-16 14:59:56其中id=1) 但是我的代码不应该有更新查询,它是一个新的插入!此外,如果您查看下面的表结构,您会发现没有“user_id”字段,它正在尝试设置该字段吗 表格结构: CREATE TABLE `companies` ( `id` int(10) u

我遇到的错误是:

SQLSTATE[42S22]:未找到列:中的1054未知列“user\u id” “字段列表”(SQL:update
companys
set
user\u id
=3,
updated\u at
=2014-03-16 14:59:56其中
id
=1)

但是我的代码不应该有更新查询,它是一个新的插入!此外,如果您查看下面的表结构,您会发现没有“user_id”字段,它正在尝试设置该字段吗

表格结构:

CREATE TABLE `companies` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `company_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `address_1` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `town` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `postcode` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `phone_number` varchar(12) COLLATE utf8_unicode_ci NOT NULL,
  `approved` tinyint(1) NOT NULL,
  `logo_file_name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `logo_file_size` int(11) DEFAULT NULL,
  `logo_content_type` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `logo_updated_at` timestamp NULL DEFAULT NULL,
  `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;
插入查询似乎失败:

public function postCreate(){
        $validator = Validator::make(Input::all(), User::$rules);

        if($validator->passes()){

            $user               = new User;
            $user->firstname    = Input::get('firstname');
            $user->surname      = Input::get('surname');
            $user->phone_number = Input::get('phone_number');
            $user->email        = Input::get('email');
            $user->password     = Hash::make(Input::get('password'));

            $user->save();

            $insertedId = $user->id;
            $user = User::where('id','=', $insertedId)->first();
            $user->attachRole(2);

            $company                =   new Company;
            $company->company_name  =   Input::get('company_name');
            $company->address_1     =   Input::get('address_1');
            $company->town          =   Input::get('town');
            $company->postcode      =   Input::get('postcode');
            $company->phone_number  =   Input::get('phone_number');
            $company->approved      =   '0';
            $company                =   Company::create(['logo' => Input::file('logo')]);

            $user->company()->save($company);
用户部分工作得很好。然而,公司方面的事情似乎正在失败。我不确定它为什么要更新公司的表,而它应该在什么时候插入

对于徽标,我正在使用。当我检查错误日志时,这是最后一个MYSQL命令-

insert into `companies` (`logo_file_name`, `logo_file_size`, `logo_content_type`,

`logo_updated_at`, `updated_at`, `created_at`) values ('2012-12-07 16.31.42.png', '36952',

'image/png', '2014-03-16 14:59:56', '2014-03-16 14:59:56', '2014-03-16 14:59:56')
就好像拉威尔绕过了第一条信息


任何帮助都将不胜感激。

先创建公司,然后保存。它将只创建一行,然后您可以将其与用户关联

$company = Company::create(['logo' => Input::file('logo')]); 
$company->approved = '0'; 
$company->save(); 

创建带有徽标的公司的行会覆盖上面加载的$company属性,因此,当您保存公司时,它会按照创建公司时加载的方式进行更新。通过对该行进行注释,它仍在尝试查找不存在的user_id字段。-SQLSTATE[42S22]:未找到列:1054“字段列表”中的未知列“用户id”(SQL:插入
公司
公司名称
地址
城镇
邮政编码
电话号码
已批准
用户id
已更新
已创建
)值(测试公司,测试地址,伦敦,CD5 GBT,07958684756,0,3,2014-03-16 15:21:482014-03-16 15:21:48))。发布用户模型中定义的公司关系。公共函数Company(){return$this->hasOne('Company');}一切正常,请尝试更改变量名'Company',因为它可能会混淆Laravel。