[英]Two tables join data passing to view in laravel
需要从状态表中获取数据。 试图输入别名,用了3个小时的时间搜索了一下,我迷路了。 有什么想法吗?
控制器代码:
$action= DB::table('actionplan')
->join('status','actionplan.status','=','status.id')
->select('status.name as testas','actionplan.*')
->where([['user_id','=',$name],['done','<>',1]])->get();
查看代码:
@foreach($teams as $item)
<th scope="row">1</th>
<td>{{$item->name}}</td>
<td>{{$item->start_date}}</td>
<td>{{$item->end_date}}</td>
<td>{{$item->comment}}</td>
<td>{{$item->status()->name}}</td>
您应该真正为数据库表实现模型。 虽然这不是您要的建议,但是它将大大简化您在这方面的查询。
您的ActionPlan.php模型:
use Illuminate\Database\Eloquent;
class ActionPlan extends Model
{
protected $table = 'actionplan';
public function status()
{
return $this->hasOne(App\Status::class, 'id', 'status');
}
}
您的Status.php模型:
use Illuminate\Database\Eloquent;
class Status extends Eloquent
{
protected $table = 'status';
}
您的查询:
$actions = Action::whereHas('status')
->where('user_id', '=', $name)
->where('done', '<>', 1)
->get();
要么:
$actions = Action::whereHas('status')
->whereUserId($name)
->having('done', '<>', 1)
->get();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.