我有下一个数据库查询:

Database::select(['*',
     \DB::raw('count(notes.id) as count')
     ])->leftjoin('notes','post.id','=','notes.post_id')
    ->groupBy('post.id');


1.如何使用口才

我的关系

//Post model
 public function notes(){
        return $this->hasMany('App\Note','post_id');
    }
//Note model
 public function post(){
        return $this->belongsTo('App\Database');
    }


2.如何获得最佳的列表帖子和列表注释。网站上的示例:
ID帖子|标题帖子|便笺|
   ---笔记1
   ..........
更新

 CREATE TABLE `posts` (
        `id` INT(11) NOT NULL AUTO_INCREMENT,
        `title` VARCHAR(255) NOT NULL,
        `text` VARCHAR(255) NULL DEFAULT NULL,
         `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
         `updated_at` TIMESTAMP NULL DEFAULT NULL,
         PRIMARY KEY (`id`)
    )

CREATE TABLE `notes` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `note` VARCHAR(255) NOT NULL DEFAULT '0',
    `user_id` INT(10) UNSIGNED NOT NULL DEFAULT '0',
    `post_id` INT(11) NOT NULL DEFAULT '0',
    `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    `updated_at` TIMESTAMP NULL DEFAULT NULL,
    PRIMARY KEY (`id`))

最佳答案

当我看到您关于案件的最新消息时,我认为您只需在模型中建立标准的雄辩关系


将此关系放在App\Post.php

public function notes(){
   return $this->hasMany('App\Note','post_id');
}

如果您希望像上面描述的那样获取数据,则可以使用此代码

控制者

$view = view('your-view-file');
$view->posts = App\Post::all();
return $view;


视图

@foreach($posts as $post)
<tr>
    <td>{{ $post->id }}</td>
    <td>{{ $post->title }}</td>
    <td>{{ $post->notes->count() }}</td>
</tr>
@endforeach



您可以使用count()总结从数据库获得的行数

关于mysql - laravel 5 Eloquent 左联接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34112167/

10-09 22:05