需要从视图中的状态表中获取数据。试图用别名,谷歌搜索超过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>
答案 0 :(得分:0)
您应该真正为数据库表实现模型。虽然这不是您要求的建议,但它将极大地简化您在这方面的疑问。
您的 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();