• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHP Query\JoinClause类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了PHP中Illuminate\Database\Query\JoinClause的典型用法代码示例。如果您正苦于以下问题:PHP JoinClause类的具体用法?PHP JoinClause怎么用?PHP JoinClause使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了JoinClause类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。

示例1: getAvailableJoinClauses

 /**
  * Possible Joins to make depending on specifications passed.
  * @return Array of Illuminate\Database\Query\JoinClause
  */
 protected function getAvailableJoinClauses()
 {
     //join with the test_users table
     $user_join = new JoinClause('inner', 'test_users');
     $user_join->on('test_users.id', '=', 'test_posts.user_id');
     return [$user_join];
 }
开发者ID:simmatrix,项目名称:laravel-query-builder-templates,代码行数:11,代码来源:PostTemplateFactory.php


示例2: join

 /**
  * Add a join clause to the query.
  *
  * @param  string  $table
  * @param  string  $one
  * @param  string  $operator
  * @param  string  $two
  * @param  string  $type
  * @param  bool    $where
  * @return $this
  */
 public function join($table, $one, $operator = null, $two = null, $type = 'inner', $where = false)
 {
     // If the first "column" of the join is really a Closure instance the developer
     // is trying to build a join with a complex "on" clause containing more than
     // one condition, so we'll add the join and call a Closure with the query.
     if ($one instanceof Closure) {
         $join = new JoinClause($type, $table);
         call_user_func($one, $join);
         $this->joins[] = $join;
         $this->addBinding($join->bindings, 'join');
     } else {
         $join = new JoinClause($type, $table);
         $this->joins[] = $join->on($one, $operator, $two, 'and', $where);
         $this->addBinding($join->bindings, 'join');
     }
     return $this;
 }
开发者ID:denise92,项目名称:cms,代码行数:28,代码来源:Builder.php


示例3: transformCustomConstraint

 /**
  * @param JoinClause $query
  * @param string $column
  * @param mixed $values
  * @param string $operator
  *
  * @throws \InvalidArgumentException
  */
 private function transformCustomConstraint($query, $column, $values, $operator)
 {
     if (is_string($column) && !Str::contains($column, '.')) {
         $column = $this->related->getTable() . '.' . $column;
     }
     $values = $this->transformConstraintObject($values);
     if (is_array($values)) {
         if (count($values) > 0) {
             switch ($operator) {
                 case '=':
                     $query->whereIn($column, $values);
                     break;
                 case '!=':
                     $query->whereNotIn($column, $values);
                     break;
                 case 'b':
                     $query->where($column, '>=', $this->transformConstraintObject($values[0]))->where($column, '<=', $this->transformConstraintObject($values[1]));
                     break;
                 case '!b':
                     $query->where($column, '<=', $this->transformConstraintObject($values[0]))->orWhere($column, '>=', $this->transformConstraintObject($values[1]));
                     break;
                 default:
                     throw new \InvalidArgumentException('Join constraint has an invalid operator defined.');
                     break;
             }
         }
     } else {
         $query->where($column, $operator, $values);
     }
 }
开发者ID:brazenvoid,项目名称:better-eloquent,代码行数:38,代码来源:JoinBuilder.php


示例4: join

 /**
  * Add a join clause to the query.
  *
  * @param  string  $table
  * @param  string  $first
  * @param  string  $operator
  * @param  string  $second
  * @param  string  $type
  * @return \Illuminate\Database\Query\Builder|static
  */
 public function join($table, $first, $operator = null, $second = null, $type = 'inner')
 {
     // If the first "column" of the join is really a Closure instance the developer
     // is trying to build a join with a complex "on" clause containing more than
     // one condition, so we'll add the join and call a Closure with the query.
     if ($first instanceof Closure) {
         $this->joins[] = new JoinClause($type, $table);
         call_user_func($first, end($this->joins));
     } else {
         $join = new JoinClause($type, $table);
         $join->on($first, $operator, $second);
         $this->joins[] = $join;
     }
     return $this;
 }
开发者ID:farhan4648gul,项目名称:hercules-cp-laravel,代码行数:25,代码来源:Builder.php


示例5: testGetBuilder

 public function testGetBuilder()
 {
     $post = new Post();
     $builder = $this->apiHandler->parseMultiple($post, ['title', 'description'], $this->params)->getBuilder();
     $queryBuilder = $builder->getQuery();
     //
     // Fields
     //
     $columns = $queryBuilder->columns;
     $this->assertContains('description', $columns);
     $this->assertContains('title', $columns);
     //
     // Filters
     //
     $wheres = $queryBuilder->wheres;
     //Test the nested filters
     foreach ($wheres as $where) {
         if ($where['type'] == 'Nested') {
             $query = $where['query'];
             $subWheres = $query->wheres;
             if ($subWheres[0]['boolean'] == 'and') {
                 //assert for title-not
                 $this->assertEquals(['type' => 'Basic', 'column' => 'posts.title', 'operator' => '!=', 'value' => 'Example Title', 'boolean' => 'and'], $subWheres[0]);
                 $this->assertEquals(['type' => 'Basic', 'column' => 'posts.title', 'operator' => '!=', 'value' => 'Another Title', 'boolean' => 'and'], $subWheres[1]);
             } else {
                 //assert for title-lk
                 $this->assertEquals(['type' => 'Basic', 'column' => 'posts.title', 'operator' => 'LIKE', 'value' => 'Example Title', 'boolean' => 'or'], $subWheres[0]);
                 $this->assertEquals(['type' => 'Basic', 'column' => 'posts.title', 'operator' => 'LIKE', 'value' => 'Another Title', 'boolean' => 'or'], $subWheres[1]);
             }
         }
     }
     //assert for title
     $this->assertContains(['type' => 'Basic', 'column' => 'posts.title', 'operator' => '=', 'value' => 'Example Title', 'boolean' => 'and'], $wheres);
     //assert for title-not-lk
     $this->assertContains(['type' => 'Basic', 'column' => 'posts.title', 'operator' => 'NOT LIKE', 'value' => 'Example Title', 'boolean' => 'and'], $wheres);
     //assert for id-min
     $this->assertContains(['type' => 'Basic', 'column' => 'posts.id', 'operator' => '>=', 'value' => 5, 'boolean' => 'and'], $wheres);
     //assert for id-max
     $this->assertContains(['type' => 'Basic', 'column' => 'posts.id', 'operator' => '<=', 'value' => 6, 'boolean' => 'and'], $wheres);
     //assert for id-gt
     $this->assertContains(['type' => 'Basic', 'column' => 'posts.id', 'operator' => '>', 'value' => 7, 'boolean' => 'and'], $wheres);
     //assert for id-st
     $this->assertContains(['type' => 'Basic', 'column' => 'posts.id', 'operator' => '<', 'value' => 8, 'boolean' => 'and'], $wheres);
     //assert for id-in
     $this->assertContains(['type' => 'In', 'column' => 'posts.id', 'values' => ['1', '2'], 'boolean' => 'and'], $wheres);
     //assert for id-not-in
     $this->assertContains(['type' => 'NotIn', 'column' => 'posts.id', 'values' => ['3', '4'], 'boolean' => 'and'], $wheres);
     //assert for relation (user->first_name like)
     $this->assertContains(['type' => 'Basic', 'column' => 'comments.title', 'operator' => 'LIKE', 'value' => 'This comment', 'boolean' => 'and'], $wheres);
     $join = new JoinClause('inner', 'comments');
     $join->on('posts.id', '=', 'comments.customfk_post_id');
     $this->assertEquals($join, $queryBuilder->joins[0]);
     //
     // Limit
     //
     $limit = $queryBuilder->limit;
     $this->assertEquals($this->params['_limit'], $limit);
     //
     // Offset
     //
     $offset = $queryBuilder->offset;
     $this->assertEquals($this->params['_offset'], $offset);
     //
     // Sort
     //
     $orders = $queryBuilder->orders;
     $this->assertContains(['column' => 'title', 'direction' => 'desc'], $orders);
     $this->assertContains(['column' => 'first_name', 'direction' => 'asc'], $orders);
     //
     //With
     //
     $eagerLoads = $builder->getEagerLoads();
     $this->assertArrayHasKey('comments', $eagerLoads);
     $this->assertArrayHasKey('comments.user', $eagerLoads);
     //Check if auto fields are set on the base query
     $this->assertContains('posts.id', $columns);
     //Check if fields are set on the "comments" relation query
     $query = $post->newQuery();
     call_user_func($eagerLoads['comments'], $query);
     $columns = $query->getQuery()->columns;
     $this->assertContains('title', $columns);
     $this->assertContains('customfk_post_id', $columns);
     $this->assertContains('user_id', $columns);
     //Check if fields are set on the "comments.user" relation query
     $query = $post->newQuery();
     call_user_func($eagerLoads['comments.user'], $query);
     $columns = $query->getQuery()->columns;
     $this->assertContains('id', $columns);
     $this->assertContains('first_name', $columns);
     //Check if sorts are set on the "comments" relation query
     $query = $post->newQuery();
     call_user_func($eagerLoads['comments'], $query);
     $orders = $query->getQuery()->orders;
     $this->assertContains(['column' => 'created_at', 'direction' => 'asc'], $orders);
     //
     // Fulltext search
     //
     $builder = $this->apiHandler->parseMultiple($post, ['title', 'description'], ['_q' => 'Something to search'])->getBuilder();
     $queryBuilder = $builder->getQuery();
     $wheres = $queryBuilder->wheres;
//.........这里部分代码省略.........
开发者ID:estebanprimost,项目名称:laravel-api-handler,代码行数:101,代码来源:ApiHandlerTest.php



注:本文中的Illuminate\Database\Query\JoinClause类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP Grammars\Grammar类代码示例发布时间:2022-05-23
下一篇:
PHP Query\Builder类代码示例发布时间:2022-05-23
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap