【发布时间】:2020-01-28 19:39:43
【问题描述】:
我想用 Eloquent 进行以下查询:
$nota=DB::table('notas')
->join('users', 'users.id', '=', 'notas.id_user')
->select('notas.id','notas.nombre', 'notas.descripcion', 'users.name AS user_name', 'users.email')
->first();
我尝试在模型中建立关系并在我的控制器中这样调用:
public function show($id)
{
$nota = Nota::with(['user','nota'])->first();
print_r($nota);
return view("notas.detalle", compact("nota"));
}
但我收到以下错误:
Illuminate\Database\Eloquent\RelationNotFoundException 调用模型 [App\Nota] 上的未定义关系 [nota]。
我的模型如下所示: Nota.php:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Nota extends Model
{
public function user()
{
return $this->belongsTo('App\User');
}
}
用户.php:
<?php
namespace App;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
class User extends Authenticatable
{
use Notifiable;
public function notas()
{
return $this->hasMany('App\Nota');
}
}
【问题讨论】:
-
您的模型中没有 nota 将其更改为 notas。这段代码旁边可能不会停止,因为这两个模型是相互关联的。
标签: php laravel model relation