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

- 8 ماه پیش
توسط محمد صادقیان آپدیت شد
alireza ashrafi ( 100 تجربه )
8 ماه پیش

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

بهترین پاسخ انتخاب شده توسط alireza ashrafi
محمد صادقیان
8 ماه پیش

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

Auth::id()

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

محمد صادقیان ( 17310 تجربه )
8 ماه پیش
تخصص : برنامه نویس وب - فریم ورک 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 ashrafi ( 100 تجربه )
8 ماه پیش

@dr-code.ir

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

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

علی بیات ( 121557 تجربه )
8 ماه پیش
تخصص : توسعه دهنده ارشد وب

@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 دسترسی دارید

محمد صادقیان ( 17310 تجربه )
8 ماه پیش
تخصص : برنامه نویس وب - فریم ورک Laravel

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

Auth::id()

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

برای ارسال پاسخ باید وارد سایت شوید