سلام
سوال اول : چطور میتونم محتویات یک جدول را (مثلا جدول setting) را در کل پروژه فراخونی کنم و بتونم از موارد داخل اون جدول در کل سایت به راحتی استفاده کنم ؟
سوال دوم : فرض کنین یه جدول user_log داریم که میخوایم کاربران پس از هربار ورود و خروج اطلاعات ip و زمان ورود و خروجشون داخلش ذخیره بشه / این کار را چطور انجام بدیم ؟
سوال سوم : فرض کنین که فیلدهای پروفایل کاربر در 3 جدول جداگانه ذخیره میشه و میخوایم که وقتی کاربر روی دکمه ویرایش فرم زد هر 3 جدول بر اساس فیلدها همزمان آپدیت بشن / این کار را چطور انجام بدیم ؟
سوال چهارم : بهتر است برای بررسی ورود کاربران از Gate استفاده کنیم یا خودمون Middleware درست کنیم ؟
سوال پنجم : چرا وقتی من جداول را به صورت کد زیر migrate میکنم و به صورت دستی مثلا توی جدول user_log آیدی کاربر را میزنم و بعدش از جدول users اون کاربر را پاک میکنم توی جدول واسط user_log اطلاعاتش پاک نمیشه ؟
public function up()
{
Schema::create('user_log', function (Blueprint $table) {
$table->id();
$table->integer('user_id')->unsigned();
$table->string('ipAddress', 20)->nullable();
$table->string('browser', 522);
$table->timestamps();
$table->foreign('user_id')
->references('id')
->on('users')
->onDelete('cascade')
->onUpdate('cascade');
});
}
درود
به نظرم اگر سوال هات رو تو چند گفتگو تقسیم میکردی، جواب های کامل تری میگرفتی
اما در هر صورت
۱. سرویس پروایدرهای لاراول قبل از سایر قسمت ها لود میشند.. پس میتونی توی یک Service Provider کوئری بزنی و جدول settings رو داخل cache یا حتی بهتر توی Redis قرار بدی و در سایر جاها ازش استفاده کنی.
فقط دقت کن اگر کوئری سنگینی در این قسمت بگذاری روی پرفرمنس اپلیکیشن اثر میذاره
۲. میتونی توابع مربوط به login و logout رو در پروژه پیدا کنی و در اون قسمت لاگ مربوطه رو ذخیره کنی
سری به LoginController بزن و تِریت AuthenticatesUsers رو دنبال کن
۴.
بهتر است برای بررسی ورود کاربران
اگر منظورت احراز هویت هست، اصلا احتیاجی به Gate نداری.. خود لاراول این کار رو انجام میده
مبحث Authentication رو با Authorization قاطی نکن
برای Authorization یا مجازسازی کاربران هست که میشه از Policy ها استفاده کرد که Policy ها هم در نهایت از Gate بهره میبرند
۵. دلایل مختلفی میتونه داشته باشه. انجین دیتابیس رو چک کن و ببین Foreign Key Constrain ها غیر فعال نباشند
سلام.
فقط سوال ۲ رو جواب میدم
توی لاراول یکسری فایل ها هستند به اسم middleware که قبل از هرچیزی اینها اجرا میشوند. میتونی ازشون کمک بگیری لاگ رو بنویسی.
سلام
همانطور که دوستان اشاره کردند قطعا باید اعتبار سنجی نهایی در سمت سرور انجام بشه
ولی جهت کاهش درخواست های نامعتبر به سمت سرور (کاهش بار اضافی روی سرور ) از جاوا اسکریپت هم استفاده بشه خیلی خوبه
@ali.bayat
سلام آقای بیات
لطفا اگر امکانش هست به سوالهایی که بالا پرسیدم پاسخ بدید
پاسخ سوال 3 را خودم پیدا کردم
ولی بقیه را نمیدونم
ممکن پاسخ ها من کاملا درست نباشه ولی خب چیزی که به ذهنم رسیدرو میگم.
سوال یک : من خودم یک سری اطلاعات محدود basic رو اگه بخوام اغلب جاهای پروژه و داخل فایل های view و blade استفاده کنم اون اطلاعات رو هنگام login از database داخل session ذخیره میکنم. مثل firstName lastName cityName و غیره. در غیر این صورت باید هر دفعه اطلاعات رو از دیتابیس بگیرید.
سوال دو: log های کاربران رو اصولا داخل database ذخیره نمیکنن به خاطر سرعت پایین دیتابیس .مگر در استثنا هایی مثل ثبت تاریخ آخرین ورود.اون هم برای مدیریت api restfull. اطلاعات لاگ رو داخل فایل ذخیره میکنند.و برای این میتونید از سیستم لاگ خود لاراول استفاده کنید.
سوال چهارم : منظورتون از بررسی لاگ گرفتنه یا احراز هویت؟
سوال پنجم: باید کد جدول user رو هم قرار بدید ببینم. ولی من خودم به شخصه برای تعریف id از کد زیر استفاده میکنم
$table->unsignedBigInteger('userId', true);
نوع تایپ id باید با کلید خارجیش یکی باشه یعنی کلید خارجی هم unsignedBigInteger باشه.
درود
به نظرم اگر سوال هات رو تو چند گفتگو تقسیم میکردی، جواب های کامل تری میگرفتی
اما در هر صورت
۱. سرویس پروایدرهای لاراول قبل از سایر قسمت ها لود میشند.. پس میتونی توی یک Service Provider کوئری بزنی و جدول settings رو داخل cache یا حتی بهتر توی Redis قرار بدی و در سایر جاها ازش استفاده کنی.
فقط دقت کن اگر کوئری سنگینی در این قسمت بگذاری روی پرفرمنس اپلیکیشن اثر میذاره
۲. میتونی توابع مربوط به login و logout رو در پروژه پیدا کنی و در اون قسمت لاگ مربوطه رو ذخیره کنی
سری به LoginController بزن و تِریت AuthenticatesUsers رو دنبال کن
۴.
بهتر است برای بررسی ورود کاربران
اگر منظورت احراز هویت هست، اصلا احتیاجی به Gate نداری.. خود لاراول این کار رو انجام میده
مبحث Authentication رو با Authorization قاطی نکن
برای Authorization یا مجازسازی کاربران هست که میشه از Policy ها استفاده کرد که Policy ها هم در نهایت از Gate بهره میبرند
۵. دلایل مختلفی میتونه داشته باشه. انجین دیتابیس رو چک کن و ببین Foreign Key Constrain ها غیر فعال نباشند
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟