получить данные о том, где условие laravel 5.2 в контроллер

Вопрос в том, как получить данные из внешнего ключа в мой контроллер и перейти к просмотру флеш-сообщений Session.

AbsenController @ магазин

$this->validate($request, [
'siswa_id' => 'required',
'keterangan' => 'required',
]);

$alpaCount = Absen::where('siswa_id', '=', $request->siswa_id)
->where('keterangan', '=', 'Alpa')
->count();

if (Absen::where('siswa_id', '=', $request->siswa_id)
->whereRaw('DATE(created_at) = CURDATE()')
->exists()) {
return redirect()->back()->with('message', 'Data Telah Tersedia');
} elseif($alpaCount >= 3) {
$absen = new Absen;
$absen->siswa_id = $request->siswa_id;
$absen->keterangan = $request->keterangan;
$absen->save();

$nama = Siswa::where('id', '=', $request->siswa_id)->get();Session::flash('warning', $nama->nama.' Sudah Lebih Dari 3 Kali
Alpa');
return redirect()->route('absen.index')

Посмотри на $ nama = Siswa :: where (‘id’, ‘=’, $ request-> siswa_id) -> get ();
я пытаюсь получить данные с $ Request-> идентификатор и получить нама поле, а затем перейти к Session :: flash (‘предупреждение’, $ nama-> nama. ‘Суда Лебих Дари 3
Кали Альпа ‘);
return redirect () -> route (‘absen.index’);

Absen @ siswa

public function siswa()
{
return $this->belongsTo('App\Siswa');
}

Siswa @ Absen

public function absen()
{
return $this->hasMany('App\Absen');
}

может быть, вы можете помочь мне, спасибо

Absen Table
Absen Table

Стол Сисва

Стол Сисва

0

Решение

find($request->id) я предполагаю, что $request->siswa_id потому что я не могу найти $ request-> id в вашем коде

попробуйте это с помощью Constraining Eager Loads

 $nama = Absen::with(['siswa' => function ($query) use ($request) {
$query->where('id', $request->siswa_id);
}])->get();

Session::flash('warning', $nama->siswa->nama.' Sudah Lebih Dari 3
Kali Alpa');

РЕДАКТИРОВАТЬ ОТВЕТЫ

Исходя из таблицы, которую вы указали в своем вопросе, это можно сделать следующим образом.

$namas = Absen::where('siswa',$request->siswa_id)->get(); //will return array because of absent as many siswa

foreach($namas as $nama) {
$siswa_name = $nama->siswa->nama;
}
0

Другие решения

Вы можете загрузить Absen с siswaв предложении where при фильтрации siswa_idэто связано с $request->siswa_id

$nama = Absen::with(['siswa' => function ($query) use($request) {
$query->where('siswa_id', $request->siswa_id;);
}])->get();

Также вы можете лениво загружать:

$name = Absen::find($request->id);

а затем позвоните load функция для загрузки связанной модели.

$name->load('siswa');

Так как сисва это массив. Вы можете пройти через это и найти нужное имя объекта. Или вы можете просто взять первый элемент, используя first() функция. например

 $nama->siswa->first()->anyproperty;
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector