簡體   English   中英

查詢生成器加入並獲取指定的記錄laravel

[英]query builder join and get the specified record laravel

我正在連接兩個表,然后找到指定的記錄,但不幸的是它不起作用。

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

有什么建議嗎?

要使用Eloquent實現此目的,請執行以下操作:

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

1.您需要一個用於用戶和UserDetails的模型:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model {}

2.建立它們之間的關系

user.php的

function details()
{
    // for this to work, the user_details table needs a column user_id
    return $this->hasMany('App\UserDetail');
}

UserDetail.php

function user()
{
    return $this->belongsTo('App\User');
}

3.查詢關系:

例如UserController.php

<?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');

    }
}

我認為,正確的查詢將如下所示:

$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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM