راکت
حل شده

استفاده از vue و axios در لاراول

4 پاسخ

دوستان من یه فرمی رو با ویو ساختم بعد الان میخوام پست کنم به سرور مشکل اینجاس از کجا میشه به وسیله کوکی ذخیره شده تو مرورگر که قبلا کاربر توسط اون لاگین شده بفهمم از سمت کدوم کاربر هستش این درخواست به api راهی هست که توی درخواست های api با استفاده از متود auth()->$id اطلاعات اون شخص رو به دست آورد با همین یبار لاگینی که شده و نیاز به توکن نباشه

alireza
alireza
@alireza1717
ثبت پرسش جدید

پاسخ‌ها

4
محمد صادقیان
محمد صادقیان
@drcode.ir

تخصص: برنامه نویس وب - فریم ورک Laravel

بهترین پاسخ

@alirezaashrafi.email
اگر منظورت اینه که وقتی از طریق Vuejs یک فرم submit میشه و میفرستی به سمت php توسط axios خب خیلی راحت سمت php میتونی بازم از کد :

Auth::id()

استفاده کنی دیگه. این کد ربطی به اینکه submit از php شده یا توسط ajax فرستادی نداره که.تو با این کد می تونی id کاربری که login هست رو بدست بیاری.
چون تو ajax رو هم داری به یک route میفرستی و اون route داره به یک controller اشاره می کنه. خب این دقیقا شد همون submit توسط php و هیچ فرقی نداره.

محمد صادقیان
محمد صادقیان
@drcode.ir

تخصص: برنامه نویس وب - فریم ورک Laravel

من منظورتون رو دقیق متوجه نشدم ولی این مورد رو میگم شاید به دردتون خورد :
1 : ابتدا موقع ورود کاربران گزینه remember رو فعال کنید تا کاربر همیشه به صورت login باقی بمونه و اینجوری می تونید با تعریف یک Route، از طریق Vue به اطلاعات کاربر دسترسی پیدا کنید.

Route::get('user_info', 'ControllerName@user_info')->name('get_user_info')->middleware('auth');

Controller :

public function user_info(){
    return Auth::user();
}
alireza
alireza
@alireza1717

@dr-code.ir

دستت درد نکنه محمد جان ولی منظورم این نیست
وقتی کاربر با مشخصاتش لاگین هستش و remember زده فقط میشه فرم رو از پی اچ پی فرستاد و به auth()->user دسترسی داره
یعنی نوع فرم رو بزاری پست و به یکی از روتر ها پست رو بفرسته اون موقع دسترسی به اطلاعات کسی که فرستاده و ایدیش داریم

سوالم اینه اگه یه فرم رو از vue سابمیت کنیم و به وسیله php نباشه یعنی به صورت ایجکس اونوقت user id رو چطور وارد کنم و بفهمم کدوم یوزر فرم رو پر کرده

شاید پاسخ شما همین‌جا باشد

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

@alirezaashrafi.email
میتونید یه پراپرتی رو روی شی window بایند کنید.

<script>
    window.user = auth()->user()
</script>

و یا یک متغیر گلبال رو قبل از فایل app.js استفاده کنید شبیه زیر:

<script>
  let authuser = {!! Auth::user() ? : '[]' !!};
</script>
<script src="{{asset('js/app.js') }}"></script>

به این شکل در تمام کامپوننت‌ها به windows.user.id یا authuser.id دسترسی دارید

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام