راکت
حل شده

به دست آوردن یک استرینگ از یو آر ال لارواول

4 پاسخ

سلام و وقت بخیر

یک لینکی به این صورت داریم:

http://127.0.0.1:8000/paper/?q=10.1002%2F%28sici%291098-2736%28200004%2937%3A4<340%3A%3Aaid-tea4>3.0.co%3B2-d&t=0

می خواستیم همچنین route ایجاد کنیم که اولش این لینک را بشناسه و بعد قسمت "?q=10.1002%2F%28sici%291098-2736%28200004%2937%3A4<340%3A%3Aaid-tea4>3.0.co%3B2-d&t=0" را برامون جدا کند. هر کاری کنیم نشد.

توی قسمت روت این را قرار دادیم ولی ارور 404 می دهد در صورتی Request می کنیم مقدارها را به صورت پارامتر در نظر می گیرد

Route::get('/paper/{link}', function ($link){
    return $link;
});

لطفا راهنمایی کنید.

Amir fazel
Amir fazel
@fazel1amir2
ثبت پرسش جدید

پاسخ‌ها

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

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

بهترین پاسخ

@fazel1amir2
شما دارید کل آبجکت Request رو میگیرید. برای دریافت همه Query String ها از کد زیر استفاده کنید:

use Illuminate\Http\Request;

Route::get('/paper', function (Request $request) {
    return $request->query();
});

و برای دریافت یک Query String از روش زیر:

use Illuminate\Http\Request;

Route::get('/paper', function (Request $request) {
    return $request->query('q');
});
علی بیات
علی بیات
@ali.bayat

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

@fazel1amir2

Route شما همون /paper/ هست و باقی URL هم بهش Query String میگن٬ از طریق کلاس Request لاراول میتونید اون مقادیر رو بدست بیارید.

Amir fazel
Amir fazel
@fazel1amir2

سلام و مرسی

من به این صورت وارد می کنم

Route::get('/paper', function (Request $request) {
    return $request;
});

ولی خروجی را به این صورت می دهد:

{"q":"10.1002\/(sici)1098-2736(200004)37:4<340::aid-tea4>3.0.co;2-d","t":"0"}

می خواهیم دقیقا همان مقدار را دریافت کنیم. اگر جایی را اشتباه نوشتم لطفا اطلاع دهیم ممنون می شویم

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

Alimotreb
Alimotreb
@Alimotreb

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

سلام
@fazel1amir2

با $requrest که دوستمون اشاره کردند میتونید با جاوا اسکریپت و تابع split هم میتونید این کار رو انجام بدید
ولی راه اول منطقی تر و بهتر هست

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

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