我是初学者在laravel和我试图弄清楚代码有什么不对,我试图将$ userr传递给整数,但发现了不同的困难。这是我得到的错误:
Connection.php第647行中的QueryException: SQLSTATE [HY000]:常规错误:1366不正确的整数值:' [{" id":5}]'对于列' userid'在第1行(SQL:插入
objectsaccess
(userid
,updated_at
,created_at
)值([{" id":5}],2017 -03-21 23:11:12,2017-03-21 23:11:12))
型号代码:
$userr = User::select('users.id')
->where(['remember_token' => $token])
->get();
$objectt = Object::select('objects.id')
->where(['objects.name' => $passname])
->get();
$inputs = [ 'userid' => $userr,'objectid' => $objectt];
ObjectAccess::create($inputs);
我想在objectsaccess中创建一个userid和object id的新行。但没有成功。
知道为什么会这样吗?
谢谢你!编辑1:
解决了第一个问题,但我得到了错误:
Collection.php第1440行中的ErrorException: 未定义的偏移量:0 在Collection.php第1440行 at HandleExceptions-> handleError(8,' Undefined offset:0',' /var/www/html/rx1/vendor/laravel/framework/src/Illuminate/Support/Collection.php Collection.php第1440行中的39;,1440,数组('键' => 0)) at Collection-> Object.php第140行中的offsetGet(0)
if($object)
{
$return['errors'] = 'Send Successful';
$return['status'] = 200;
$return['success'] = 1;
$return['content'] = $object['0']->content; // this is line 140 of object.php
$return['ylink'] = $object['0']->ylink;
$return['slink'] = $object['0']->slink;
return $return;
}
编辑2($ object):
$object = Object::select('objects.*', 'users.LAST','users.remember_token')
->join('users', 'users.LAST', '=', 'objects.passvariable')
->where(['remember_token' => $token])
//->where('objects.passvariable', 'users.passvariable')
->where(['objects.name' => $passname])
->get();
答案 0 :(得分:0)
您需要先修改代码。也许使用评论中提到的关系。但首先要修复你的查询。
$userr = User::select('id')
->where('remember_token', $token)
->first(); //<-- replace get()
因为get()
返回一个集合并首先返回一个对象。同样适用于$objectt
。
然后,您的SQL仅考虑了userid
并忽略了objectid
。也许,您没有在objectid
<{1}}
$fillable
数组中添加ObjectAccess
最后你可以做到
ObjectAccess::create([
'userid' => $userr->id,
'objectid' => $objectt->id
]);
修改强>
由于您的$object
变量实际上是一个集合,所以请执行此操作。
if ( $object ) {
$return['errors'] = 'Send Successful';
$return['status'] = 200;
$return['success'] = 1;
$first = $object->first();
if ( $first ) {
$return['content'] = $first->content;
$return['ylink'] = $first->ylink;
$return['slink'] = $first->slink;
}
return $return;
}
就像惯例一样,在最后用s
命名你的集合/数组变量,这样你或任何其他开发人员都会知道它是复数,所以它是集合或数组。