Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.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
Php 查询生成器联接并获取指定的记录laravel_Php_Laravel_Laravel 5 - Fatal编程技术网

Php 查询生成器联接并获取指定的记录laravel

Php 查询生成器联接并获取指定的记录laravel,php,laravel,laravel-5,Php,Laravel,Laravel 5,我正在连接两个表,然后找到指定的记录,但不幸的是它不起作用 $users = DB::table('users') ->join('user_details', 'users.id', '=', 'user_details.id') //->select('users.*', 'contacts.phone', 'orders.price') ->get()->find(1); 有什么想法有用吗?我想,正确的查询如下: $

我正在连接两个表,然后找到指定的记录,但不幸的是它不起作用

$users = DB::table('users')
        ->join('user_details', 'users.id', '=', 'user_details.id')
        //->select('users.*', 'contacts.phone', 'orders.price')
        ->get()->find(1);

有什么想法有用吗?

我想,正确的查询如下:

$users = DB::table('users')
    ->find(1)
    ->join('user_details', 'users.id', '=', 'user_details.id')
    ->get();
或者可以使用
where
指定where子句

$users = DB::table('users')
    ->where('user.gender', '=', 1) // Example.
    ->join('user_details', 'users.id', '=', 'user_details.id')
    ->get();

要使用雄辩来实现这一点,请执行以下操作:

我假设您使用的是最新的Laravel版本(5.1)

1。您需要一个用户模型和用户详细信息:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model {}
UserDetail.php

3。查询关系:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model {}
e、 g.UserController.php


你不使用雄辩有什么原因吗?我还不擅长。我同时使用eLoqount和query builder,但到目前为止,我使用query builder解决这个问题。如果你能建议使用EloQoont获得它,那么你会喜欢你的。你说的特定记录是什么意思?就像我想获取与给定id匹配的记录。你传递的是什么参数?用户的id?不幸的是,我得到了这个错误“调用未定义的方法stdClass::join()”有什么想法吗?我使用了你答案中的第一个代码。我得到了这个错误“SQLSTATE[42S22]:未找到列:在where子句中1054未知列“user.id”(SQL:select*from
users
internal join
user\u details
id
user\u details
id
where
user
id
=1)在我尝试了第二个之后,有什么想法吗?@CodeDemon在你的问题中也发布了你的表模式,我只添加了一个示例。您需要为查询生成器指定字段。这是最简单的方法。但更好的解决方案是使用laravel关系。那么,在我完成了关系设置之后,我将如何查询它呢?对不起,我在第一个答案中忘记了它。请看我编辑的。很好。我的用户表的id不是user\u id,与uses\u detals相同,主键列的名称为“id”,可以吗?我将如何使用它正如您所说,它必须具有“用户id”。您可以在定义这样的关系时指定外键:
$this->hasMany('App\UserDetail
,'foreign\u key');`只需将
外键
替换为
id
即可。
function user()
{
    return $this->belongsTo('App\User');
}
<?php

namespace App\Http\Controllers;

use App\User;

class UserController {
    public function index()
    {
        $user = User::find(1);
        $user_details = $user->details;

        // or

        $user = User::find(1)->with('details');

    }
}