[英]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.