5.1 Laravel uygulamasında çalışıyorum. Bu uygulamada Bussiness Model (ispanyolca olarak adlandırılmış Negocio) ve Kullanıcı Modeli arasında OnetoMany İlişkisi var. Kullanıcılarımı kaydettiğimde bir simge oluşturup e-posta uyumu üzerindeki belirteci kullanmak için kullanıcı tablosuna kaydederim.Sorunun giderilmesinden Eloquent RelationShip Laravel 5.1
Kullanıcı hesabı onayladığında, bir dizin oluşturmak için denetleyici tarafından alınan jetonu kullanmak istiyorum. Daha sonra kullanıcının 'public/negocios /' ile ilişkili olduğu işletmenin adı.
Yani userconfirmartion için benim denetleyicisi vardır: Benim İş Modelipublic function emailConfirm($token)
{
try {
//getting the bussiness that user is related to
$negocio = App\Negocio::with(['user' => function ($query) use($token) {
$query->where('token', 'like', $token);
}])->firstOrFail()->folderProfile();
//Then we activate the user account
$user = User::whereToken($token)->firstOrFail()->confirmEmail();
return redirect('/login')->with('mensaje', '¡Su cuenta de usuario se ha activado, ahora puede iniciar sesión en su cuenta!');
} catch (ModelNotFoundException $e) {
return redirect('/login')->with('mensaje', 'Ya se ha confirmado a este usuario, solo inicie sesión ¬¬');
}
}
Ben dizinin adı olarak bussiness adı alınırken dizini oluşturmak için fonksiyonu var:
public function folderProfile()
{
$name = str_replace(' ', '', $this->nombre_negocio);
$ruta_a_public = public_path().'/negocios/';
$ruta_a_public .= $name;
File::makeDirectory($ruta_a_public, $mode = 0777, true, true);
}
Sorun, php artisan tinker
numaralı telefondaki kodu soruşturmaktır. Eloquent, sadece iş ile ilgili değil, veritabanına kaydedilen tüm iş bilgimi alır.
(iş modeline) 'dir başarısız parçası beklendiği gibi bana "sorgu" çalışması için en iyi yolu söyleyebilirdi eğer senden takdir ediyorum:
$negocio = App\Negocio::with(['user' => function ($query) use($token) {
$query->where('token', 'like', $token);
}])->firstOrFail()->folderProfile();
benim Negocio modelinde (ispanyolca bussiness modeli):
Ben https://laravel.com/docs/5.1/eloquent-relationships#querying-relationsDÜZENLEME okuduklarım üzerine dayalı
public function negocio()
{
return $this->belongsTo('App\Negocio', 'negocio', 'codigo_negocio');
}
sayesinde çocuklar ... Bu uzun yazı için üzgünüm:
public function user()
{
return $this->hasMany('App\User', 'negocio', 'codigo_negocio');
}
Ve Kullanıcı Modelibu var.
//First search for the user
$user = App\User::where('token','like','%' . $token . '%')->first();
//Then search for the business
$negocio = App\Negocio::where('user_id',$user->id)->first();
tablolar arasındaki ilişkileri tanımlamak unutmayın:
Merhaba Elotgamu, Lütfen, kullanıcı tablosu ve iş modeli arasındaki gerçek ilişkiyi görmek için tablolarınız hakkında basit bir açıklama sağlamak için gönderinizi günceller misiniz? –
Düzenlendi ...Kullanıcı ve İş modeli arasındaki model ilişkilerimi ekledim – elotgamu