Merhaba,
Kullanıcı yönetim panelinde arama input'una email adresi yazılıp enter'a basıldığında veritabanındaki ilgili satırı çekip inputları doldurmaya çalışıyorum bu kısımda sorunum yok. Sorun olan kısım ise hasMany address relation kısmını bu json içinde address key'i altına atamıyor olmam. Bir yerlerde hata yapıyorum ama bulamadım.
public function getUserData($email){
$users = User::all();
foreach ($users as $user){
if(Crypt::decryptString($user->email) === $email){
$data = [
"name" => Crypt::decryptString($user->name),
"email" => Crypt::decryptString($user->email),
"phone" => Crypt::decryptString($user->phone),
"address" => function($user) {
return $user->with('address')->first()->address;
}
];
return response()->json($data);
}
}
return response('',404);
}
Edit 1:
içerde değil dışarıda tanımlayınca çalıştı neden böyle oldu ?
$address = array();
foreach ($user->with('address')->first()->address as $row){
array_push($address,[$row->title => Crypt::decryptString($row->address)]);
}
$data = [
"name" => Crypt::decryptString($user->name),
"email" => Crypt::decryptString($user->email),
"phone" => Crypt::decryptString($user->phone),
"address" => $address
];
return response()->json($data);