欢迎!我创建了应用程序,用户拥有自己的笔记(基于外键)。现在在表中我想显示他的名字,但我无法通过它:
试点模式:
class Pilot extends Model
{
protected $table = 'pilots';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'phone', 'email',
];
public function note() {
return $this->hasMany(Note::class);
}
注意型号:
class Note扩展Model
{
protected $table = 'notes';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'data', 'zadanie', 'uwagi', 'pilot_id',
];
public function pilot() {
return $this->belongsTo(Pilot::class);
}
Notes Controller(我想在索引页面中显示导频名称)
public function index(Request $request)
{
$notes = Note::all();
$pilots = Pilot::find($id);
return view('uwagi.index',['notes'=>$notes,'pilots'=>$pilots]);
}
当我通过
传递给它时{{$pilots->name}}
我有一个错误undefined $ id。每个注释属于基于外键的pilot_id的用户,该注释表位于注释表中。该pilot_id密钥指的是表导频 - > id和我想在这个id的索引页面名称中显示,但我不知道如何传递它。
关心并感谢您的帮助
答案 0 :(得分:0)
Controller的索引方法中没有已定义的变量$ id。此外,如果您定义了模型关系,则可以使用Pilot::with('note')->all();
获取所需数据
看看这个:
https://laravel.com/docs/5.4/eloquent-relationships#eager-loading
但是将pilot_id传递给像
这样的路线的最好方法Route::get('pilot/{id}', 'NotesController@index')
和索引方法将类似于public function index(Request $request, $pilot_id)
或
Route::resource('pilot', 'NotesController')
和内部控制器定义show($ pilot_id)方法 而不是使用
$pilot_data = Pilot::with('note')->find($pilot_id);
$pilot_data->note
将包含与试用
根据代码,毫无疑问在控制器的操作中绑定Request $请求,因为你没有在代码中使用它
答案 1 :(得分:-1)
好的回答是最容易的,因为我想:
控制器:
public function index(Request $request)
{
$notes = Note::all();
return view('uwagi.index',['notes'=>$notes,]);
}
刀片:
@foreach ($notes as $note)
{{ $note->pilot->name }}
@endforeach