Echo 2017/8/1 14:23:54
我现在有个news表 ,比如我news表有很多的tags 属性, 我在news表存的tags_id 是varchar,
那么news 表里的tags_id = 1,2,3 那如果这条数据怎样用elq来查询呢?
我想查出来的数据格式是:
news=[
'id'=>1,
'ttile'=>'hello',
'tags_id'=>'1,2,3'
'tags'=>[
'0'=>[
'id'=>'1',
'name'=>'one'
] ,
'1'=>[
'id'=>'2',
'name'=>'two'
] ,
'2'=>[
'id'=>'3',
'name'=>'three'
] ,
]
];
News::whereHas('tags',function($q){
$q->whereIn('id','news.cate_id');
})->get();
News::whereHas('tags',function($q){
$q->whereIn('id','news.cate_id');
})->get();
假如说我现在的news表有条数据tags_id的值为1,2,3 ,tags表的字段为 id,name ,那么如果我要用比如说News::来查询 new表里的tags_id为1,2,3的值,我怎么去处理?
whereIn貌似在orm里面不能使用吧? 必须要DB来操作?
那如果我是比如我的新闻有多个属性,我存到数据库是用的varchar 比如tags_id字段为1,2,3的数据?这时候,如果我用with或者wherehas来查询的话,我怎么能查询到多个属性值?
额,我的问题可能比较傻,希望教主也能帮忙解答下。。谢谢
3.如果我需要写连表查询的话,join或者leftjoin是否在orm上面也能OK?如果没有的话,能否给一个,比较有代表性的连表查询的列子(虽然我知道连表查询貌似用one to one 类似写),我在ELQ BUilder 上面只看到了joinWhere 这样一个。
1.第一个问题。
<?php
namespace App;
use IlluminateDatabaseEloquentModel;
class User extends Model
{
public function phone(){
return $this->hasOne('AppPhone', 'foreign_key', 'local_key');
}
}
如果我需要local_key 来作为判断条件的话,那么foreign_key我需要怎么填写?
是return $this->hasOne('AppPhone', '', 'user_id');吗?
2.第二个问题。
比如我的的News表里面有多个tags,如果我的tags_id是以字符串逗号相隔的形式来存储属性的,那么,我如果用elq来获取 某个文章拥有的所有属性,我应该怎么查询? 或者说我的news对应多个属性值,我应该如何存储。。
麻烦了教主。。