سلام من مشکل عجیبی دارم
توی جدول یوزرم اونایی که primary_id =0 هستن حساب های فرعی هستن
حالا من هرجا میخام ازونا استفاده کنم اصلا حسابشون نمیکنه
مثلا تعدادشون همیشه توی داشبرد 0 میزنه!!!
یا اصلا وقتی کل یوزرهارو میگیرم اصلا اونارو نشون نمیده!!!! انگار کلا مخفی شدن
کسی میدونه چرا اینطوری شده؟؟؟
خیلی دقیق متوجه ماجرا نشدم... ولی چند مورد زیر به نظرم اومد:
User::where('is_primary', '0')->get()->count();
بلکه اینجوری:
User::where('is_primary', '0')->count();
User::where('is_primary', '0')->get();
اینجوری بنویسید و آزمایش کنید:
User::where('is_primary', 0)->get();
موفق و پیروز باشید.
@miladparsi1070
سلام
یه کم موضوع عجیبه برام
مطمئنید که گلوبال اسکوپی توی مدلتون تعریف نکردید؟ من اینطور مواقع کوئری ایجاد شده توسط لاراول رو میخونم ببینم مشکل کجاست
دستور زیر رو قبل از اجرای کوئریتون بزنید و ببینید آیا لاراول شرط دیگه ای رو اضافه کرده یا نه :
Event::listen('illuminate.query', function($query)
{
var_dump($query);
});
User::where('is_primary', 1)->get()->count()
این کوعریه منه
کجاش بزارم دقیقا کدمو؟
و اون کد رو کجا بزارم که اجرا شه
@miladparsi1070
کدی که نوشتم رو دقیقا قبل از کد خودتون بنویسید :
Event::listen('illuminate.query', function($query)
{
var_dump($query);
});
User::where('is_primary', 1)->get()->count()
این کار باعث میشه هر کوئری که توی لاراول اجرا میشه رو var_dump کنه و شما میتونید متن کوئری رو ببینید و دیباگ کنید کارتون رو
به جای var_dumpمیتونید کوئری رو توی فایل لاگ ذخیره کنید اگه مثلا پروزه شما وب سرویسی هست .
@miladparsi1070
دستور زیر رو تست کنید :
\DB::connection()->enableQueryLog();
User::where('is_primary', 1)->get()->count();
dd(\DB::getQueryLog());
قبلی رو پاک کنید.
@miladparsi1070
چک کنید ببینید فیلد deleted_at رکوردهایی که مقدارشون 1 هستن ، null هست یا نه
کوئریتون درسته و شرط اضافه ای روش ست نشده
@miladparsi1070
راستی فکر میکنم فیلد is_primary ایندکس نشده درسته؟
چون زمان اجرای کوئری شما نیم ثانیه س ! خیلی زیاده .
@juza66
ببینید من این کد رو گذاشتم
\DB::connection()->enableQueryLog();
User::where('is_primary', '0')->get()->count();
dd(\DB::getQueryLog());
و این نتیجه رو داد:
سوالم اینه که اون علامن سوال چیه؟ مگه مباید به جاش صفر بزاره؟؟؟
سوال دومم اینه که چرا where deleted_at is nullگذاشته؟؟؟ چون من توی دیتابیس فیلدایی که is_prmary =0 دارن همشون deleted_at شون نال هست پس چیزیو نمیاره!!!
میخوام بدونم کچا اون where deleted_at is null بهش اضافه شده
خیلی دقیق متوجه ماجرا نشدم... ولی چند مورد زیر به نظرم اومد:
User::where('is_primary', '0')->get()->count();
بلکه اینجوری:
User::where('is_primary', '0')->count();
User::where('is_primary', '0')->get();
اینجوری بنویسید و آزمایش کنید:
User::where('is_primary', 0)->get();
موفق و پیروز باشید.
@mhyeganeh مرسی از توضیحاتتون
من soft delete رو هم از مدل و هم از مایگرشن ها پاک کردم و دوباره کل جداول رو مایگرت کردم
الان مشکل اینجاست وقتی وارد صفحه ویرایش کاربر اصلی میشم، خود به خود تمام کاربران فرعی مربوط به اون یوزر از جدول یوزرها پاک میشه
میشه کمک کنید پیدا کنم مشکل از کجاست؟ خیلی مهمه برام
این مدل یوزرمه:
<?php
namespace App;
use App\Models\Connection;
use App\Models\Consult;
use App\Models\File;
use App\Models\Language;
use App\Models\License;
use App\Models\Note;
use App\Models\Research;
use App\Models\Sms;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
class User extends Authenticatable
{
use Notifiable;
protected $guarded = [];
protected $hidden = [
'remember_token',
'deleted_at',
];
public function birthInfo()
{
return $this->hasOne(BirthInfo::class);
}
public function familiarity()
{
return $this->hasOne(Familiarity::class);
}
public function emigrationInfo()
{
return $this->hasOne(EmigrationInfo::class);
}
public function countries()
{
return $this->belongsToMany(Country::class);
}
public function visas()
{
return $this->belongsToMany(Visa::class);
}
public function educations()
{
return $this->hasMany(Education::class);
}
public function occupations()
{
return $this->hasMany(Occupation::class);
}
public function licenses()
{
return $this->hasMany(License::class);
}
public function researches()
{
return $this->hasMany(Research::class);
}
public function languages()
{
return $this->hasMany(Language::class);
}
public function files()
{
return $this->hasMany(File::class);
}
public function relations()
{
return $this->hasMany(Relation::class);
}
public function notes()
{
return $this->hasMany(Note::class);
}
public function consult()
{
return $this->hasOne(Consult::class);
}
public function customerManagements()
{
return $this->hasMany(CustomerManagement::class)->orderBy('id','desc');
}
public function customerManagementsHistory()
{
return $this->hasMany(CustomerManagementHistory::class)->orderBy('id','desc');
}
// public function relatives()
// {
// return $this->hasMany(User::class, 'primary_id', 'id');
// }
public function primary()
{
return $this->belongsTo(User::class);
}
public function connection()
{
return $this->belongsTo(Connection::class);
}
public function smses()
{
return $this->hasMany(Sms::class);
}
}
@miladparsi1070
سلام. راجب مشکل اخری که دارید داخل مدل که اتفاق خاصی نمیفته فقط روابط تعریف میشه. باید کد کنترلر قسمت مربوط به اکشن ویرایش کاربر رو چک کنید.
احتمالا در اون متد اتفاقی میفته که باعث پاک شدن یوزر های زیر دسته میشه 🧐
@SobhanDadkhah
اره چک کردم مشکل از soft delete نبود
یه مشکل مسخره داشت که 3 روز وقتمو گرفته بود😖 حل شد خلاصه مرسی از همه
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟