【发布时间】:2014-04-29 00:49:36
【问题描述】:
我有 2 个模型
class Product extends Eloquent {
protected $table = 'products';
public function product_data() {
return $this->hasMany('Product_translate','id_product');
}
}
和
class Product_translate extends Eloquent {
protected $table = 'product_translates';
public function product() {
return $this->belongsTo('Product','id_product');
}
}
在我的控制器中,如果我尝试使用 Eloquent:
class PublicController extends BaseController {
public function home()
{
$products = Product::find(1)->product_data;
$queries = DB::getQueryLog();
$last_query = end($queries);
echo "<pre>";
print_r($last_query);
print_r($products);
echo "</pre>";
}
}
这是我得到的:
Array
(
[query] => select * from `tp450products` where `id` = ? limit 1
[bindings] => Array
(
[0] => 1
)
[time] => 0.88
)
您看不到任何结果,只有查询(在 phpmyadmin 中正确运行),
但如果我尝试仅使用 find(1) 来使用更改:
class PublicController extends BaseController {
public function home()
{
$products = Product::find(1);
$queries = DB::getQueryLog();
$last_query = end($queries);
echo "<pre>";
print_r($last_query);
print_r($products);
echo "</pre>";
}
}
我获得了表“products”的记录,但我想获得与“product_translates”的连接。 不知道出了什么问题!
数据库已正确链接,“product_translates”具有正确的外键
这里有两张表(每张只有一条记录):
Products
id | type | best | featured | voto | created_at | updated_at
1 | 1 | 0 | 0 | 0 | 2014-03-19 00:00:00 | 2014-03-12 13:26:23
Product_translates
id | id_product | id_lang | nome | slug
1 | 1 | 1 | mutande ascellari | mutande-ascellari
编辑 1
使用查询生成器没有问题,但为什么使用 Eloquent ORM 我有这个问题?
类 PublicController 扩展 BaseController {
public function home()
{
$products = DB::table('products')->leftJoin('product_translates','product_translates.id_product','=','products.id')->get();
$queries = DB::getQueryLog();
$last_query = end($queries);
echo "<pre>";
print_r($last_query);
print_r($products);
echo "</pre>";
}
}
【问题讨论】:
标签: mysql select join laravel-4 eloquent