我正在连接两个表,然后找到指定的记录,但不幸的是它不起作用。查询生成器加入并获取指定的记录laravel
$users = DB::table('users')
->join('user_details', 'users.id', '=', 'user_details.id')
//->select('users.*', 'contacts.phone', 'orders.price')
->get()->find(1);
任何想法都有帮助吗?
我正在连接两个表,然后找到指定的记录,但不幸的是它不起作用。查询生成器加入并获取指定的记录laravel
$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();
不幸的是,我得到这个错误“调用未定义的方法stdClass :: join()”的任何想法?即时通讯使用您的答案中的第一个代码。 –
,我得到了这个错误“SQLSTATE [42S22]:未找到列:1054'where子句'中的未知列'user.id'(SQL:select * from用户'内部连接'user_details'在'用户'上.'id '='user_details'.'id' where'user'.'id' = 1)“在我尝试第二个之后,有什么想法? –
@CodeDemon在您的问题中发布您的表格架构 –
要使用口才实现这一点,请执行下列操作:
我假设你正在使用最新版本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');
}
}
那么我该如何去查询它然后我做了那里关系的设置? –
对不起,我在第一个答案中忘了它。请看我编辑的一个。 – Tim
不错。我的用户表有ID不是user_id,也是相同的uses_detals主键列有一个名为“ID”是好吗?如何使用它,就像你说的它必须有“user_id” –
你有没有理由不使用雄辩? – Tim
即时通讯还不擅长。即时通讯同时使用eloqouent和查询生成器,但到目前为止,即时通讯使用查询生成器来解决这个问题。如果你可以建议使用eloqouent来实现它,那么就会爱上你的。 –
你是什么意思具体记录? – aldrin27