BallOon

2637 经验值

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对应多个属性值,我应该如何存储。。

麻烦了教主。。

--table 不行 得--create 不知道为啥。。