У меня есть отношение один к одному на двух моделях (контакты и пользователи).Понимая, что у некоторых контактов не было пользователя, с которым я связан, я пытаюсь написать сеялку, которая перехватит все эти случаи и создаст модель пользователя и свяжет ее с контактом.Тем не менее, этот скрипт ловит только около половины контактов каждый раз.Повторный запуск в конечном итоге сделает работу, но я хотел бы знать, что вызывает это.
Модели:
use Cartalyst\Sentry\Users\Eloquent\User as SentryUserModel;
class User extends SentryUserModel {
public function contact()
{
return $this->hasOne('Contact');
}
}
class Contact extends AppModel {
protected $table = 'contacts';
public function user()
{
return $this->belongsTo('User');
}
}
Эта сеялка работает:
public function run()
{
$contacts = Contact::all();
foreach($contacts as $contact)
{
$user = $contact->user;
if(!$user))
{
//Logic for creating and associating new user with contact
//This is only being hit for about half of the contacts without a user_id in the db.
Log::info('Found a contact without a user.');
}
}
}
Мы ожидаем, что эта сеялка перехватит все контакты без пользователей, а затем выполнит логику создания пользователя, но вместо этого она отлавливает около половины контактов без пользователей и правильно создает и связывает нового пользователя.Любое понимание того, почему это происходит, будет с благодарностью.Заранее спасибо!