如何在Laravel 5中仅检索渴望加载的一条记录?

时间:2018-10-11 07:13:41

标签: laravel laravel-5 eloquent

我有口才模型用户,具有关联语言

class User extends Model {

  // ... some code 

  public function languages()
  {
     return $this->belongsToMany(Language::class);
  }
}

我的用于ManyToMany关系的迁移数据透视表

public function up()
{
    Schema::create('language_user', function (Blueprint $table) {
        $table->unsignedInteger('user_id');
        $table->unsignedInteger('language_id');
        $table->primary(['user_id', 'language_id']);
    });
}

在控制器中,我尝试获取我的用户

class UserController extends Controller
{
     public function show(User $user)
     {
        return response()->success($user->with('languages')->get());
     }
}

但是不幸的是,我得到的不是 如何只查询一个用户记录及其语言

1 个答案:

答案 0 :(得分:3)

使用Laravels 懒惰加载

来自docs

  

有时您可能需要在父母之后渴望加载一段关系   模型已被检索。

在您的情况下:

class UserController extends Controller
{
     public function show(User $user)
     {
        return response()->success($user->load('languages'));
     }
}