লারাভেল: বেস url পান Get


181

সাধারণ প্রশ্ন, তবে উত্তরটি পাওয়া বেশ শক্ত বলে মনে হচ্ছে। কোডিগিটারে, আমি ইউআরএল হেল্পার লোড করতে পারি এবং তারপরে কেবল তা করতে পারি

echo base_url();

আমার সাইটের ইউআরএল পেতে। লারাভেলের কি সমমান আছে?

উত্তর:


281

আপনি URL মুখোমুখি ব্যবহার করতে পারেন যা আপনাকে ইউআরএল জেনারেটরে কল করতে দেয়

সুতরাং আপনি এটি করতে পারেন:

URL::to('/');

আপনি অ্যাপ্লিকেশন ধারকটিও ব্যবহার করতে পারেন:

$app->make('url')->to('/');
$app['url']->to('/');
App::make('url')->to('/');

বা ইউআরএল জেনারেটর ইনজেক্ট করুন:

<?php
namespace Vendor\Your\Class\Namespace;

use Illuminate\Routing\UrlGenerator;

class Classname
{
    protected $url;

    public function __construct(UrlGenerator $url)
    {
        $this->url = $url;
    }

    public function methodName()
    {
        $this->url->to('/');
    }
}

3
এবং উদাহরণ থেকে এর সম্ভাব্য উপস্থিতি সত্ত্বেও, এটি লারাভেলের মূল পাথের সাথে তুলনামূলক, সুতরাং আপনি যদি /something/এটিতে ইনস্টল হন তবে সঠিক URL টি তৈরি করবেন।
— ceejayoz

@deFreitas এবং #ceejayoz কীভাবে ইউআরএল ব্যবহার করবেন :: ল্যারাভেল স্থানীয়করণের সাথে?
— মুবাশার ইকবাল

1
@MubasharIqbal যদি আমি আপনার প্রশ্নের বোঝা, {{URL::to('/my-page.html')}}দৃশ্য এবং echo URL::to('/my-page.html');কোড এ
— ডিফ্রেইটাস

আমার ক্ষেত্রে চমৎকার হ্যান্ডলার: <a class="button is-primary" href="<?= URL::to('/'); ?>/atencion/reporte" target="_blank">ধন্যবাদ!
— joelmez4

156

লারাভেল <5.2

echo url();

লারাভেল> = 5.2

echo url('/');

আশা করি এটি আপনাকে সহায়তা করবে


4
আপনি কেবল একটি কোড-স্নিপেটের পরিবর্তে ব্যাখ্যা অন্তর্ভুক্ত করতে এই উত্তরটি প্রসারিত করতে পারেন?

2
পরীক্ষা: আমার স্থানীয়ভাবে সাইট রয়েছে: লোকালহোস্ট / এবিসি কোডিগিটারে: ইকো বেস_ুরল (); => আমি লোকালহোস্ট / অ্যাবসি পাই লারাভেলে: প্রতিধ্বনি ইউআরএল (); => আমি লোকালহোস্ট / অ্যাবসিও পাই ।
— Nguyễn Thành Bồi

1
বিভাগটিযুক্ত url এর জন্য এটি ব্যবহার করুন: url ()। '/'।
— Est

20
মনে রাখবেন যে এটি আর 5.2-এ কাজ করে না: github.com/laravel/framework/issues/11479 আপনি url('/')তবে এর পরিবর্তে ব্যবহার করতে পারেন
— 4lun

1
asset('/')আমার কাছে এটি আরও ভাল বলে মনে হচ্ছে কারণ এর পিছনে স্ল্যাশ রয়েছে যা বেস হ্রেফের জন্য প্রয়োজনীয়।
— vintproykt

47

লারাভেল 5 এর জন্য আমি সাধারণত:

<a href="{{ url('/path/uri') }}">Link Text</a>

আমি বুঝতে পারছি যে url()ফাংশনটি ব্যবহার করে একই কল Facadeকরা হচ্ছেURL::to()


4
দ্রষ্টব্য: যদি আপনার ওয়েবসাইটটি https এর উপরে পরিবেশন করা হয় আপনি secure_url()একইভাবে ফাংশনটি ব্যবহার করতে পারেন এবং এটি একটি https লিঙ্ক তৈরি করবে। url()একটি https সাইটে ব্যবহার করে এখনও একটি লিঙ্ক লিঙ্ক তৈরি হবে।
— ড্র

1
এই আমার জন্য কাজ করে। নিরাপদ_আরল () সিনট্যাক্সটিও জানার জন্য দরকারী। ধন্যবাদ।
— jimmyplaysdrums 15

1
আমি লুমেন 5.4 ব্যবহার করছি। সেখানে url()একটি HTTP অথবা https অনুরোধের রীতিভিত্তিক লিংক জেনারেট করে। অন্যদিকে secure_url()অস্তিত্ব নেই। লারাভেল 5.4 এও কি এই পরিবর্তন ঘটেছে?
— আন্দ্রে লিনার্ট

না, এটি লার্ভেল 5.4 এর অংশ। আমি সত্যিই মন্তব্য করতে পারছি না কারণ আমি কখনই লুমেন ব্যবহার করি নি তবে এর জন্য 5.4 লারাভেল ডকুমেন্টেশন secure_url()এখানে পাওয়া যায়: লারাভেল ডকস
— শেল্পার্স

23

আরও কিছু ইউআরএল () ফাংশন এবং এর ব্যবহার সহ 2018 লার্যাভেল প্রকাশের (5.7) ডকুমেন্টেশন থেকে আপডেট।

প্রশ্ন: লারাভেলে সাইটের ইউআরএল পেতে?

এটি একটি সাধারণ প্রশ্ন, তাই আমরা এটি ভাগ করতে পারি।

1. বেস URL টি অ্যাক্সেস করা

// Get the base URL.
echo url('');

// Get the app URL from configuration which we set in .env file.
echo config('app.url'); 

২. বর্তমান ইউআরএল অ্যাক্সেস করা

// Get the current URL without the query string.
echo url()->current();

// Get the current URL including the query string.
echo url()->full();

// Get the full URL for the previous request.
echo url()->previous();

৩. নামযুক্ত রাস্তার জন্য ইউআরএল

// http://example.com/home
echo route('home');

4. সম্পদের URL (সর্বজনীন)

// Get the URL to the assets, mostly the base url itself.
echo asset('');

5. ফাইল ইউআরএল

use Illuminate\Support\Facades\Storage;

$url = Storage::url('file.jpg'); // stored in /storage/app/public
echo url($url);

এই প্রতিটি পদ্ধতিতে ইউআরএল ফেসিডের মাধ্যমে অ্যাক্সেস করা যেতে পারে:

use Illuminate\Support\Facades\URL;

echo URL::to(''); // Base URL
echo URL::current(); // Current URL

ব্যবহারের সাথে ব্লেড টেম্পলেট (ভিউজ) থেকে এই সহায়তাকারী ফাংশনগুলিকে কীভাবে কল করবেন।

// http://example.com/login
{{ url('/login') }}

// http://example.com/css/app.css
{{ asset('css/app.css') }}

// http://example.com/login
{{ route('login') }}

// usage

<!-- Styles -->
<link href="{{ asset('css/app.css') }}" rel="stylesheet">

<!-- Login link -->
<a class="nav-link" href="{{ route('login') }}">Login</a>

<!-- Login Post URL -->
<form method="POST" action="{{ url('/login') }}">

17

এটি অ-সুন্দর ইউআরএলগুলির সাথে কাজ করতে আমাকে করতে হয়েছিল:

asset('/');

3
আমার প্রয়োজন অনুসারে এটি সর্বোত্তম<base href="{{ asset('/') }}" />
— rneves

আপনাকে কুডোস! <base href="..."/>পিছনের স্ল্যাশের কারণে এটি ঠিক ঠিক খাপ
— খায়

13

লারাভেল সহায়তা কর্মের গুচ্ছ সরবরাহ করে এবং আপনার প্রয়োজনের জন্য আপনি সহজভাবে পারেন

লারাভেল হেল্পারদের ইউআরএল () ফাংশন ব্যবহার করুন

তবে লারাভেল 5.2 এর ক্ষেত্রে আপনাকে ইউআরএল ('/') ব্যবহার করতে হবে

লারাভেলের অন্যান্য সমস্ত সহায়ক ফাংশনগুলির তালিকা এখানে


@ সাম্বেলেরোজ এবং আপনি যে অভ্যন্তরীণ ফোল্ডার / ফাইলগুলি করতে পারেন তা অ্যাক্সেস করতে চানurl('/css/style.css')
— অক্ষয় খালে

13

এই:

echo url('/');

এবং এই:

echo asset('/');

উভয়ই আমার ক্ষেত্রে হোম url প্রদর্শন করেছে :)


3

আরেকটি সম্ভাবনা: {{ URL::route('index') }}


নিশ্চিত না যে এটি কেন হ্রাস পেয়েছে, কারণ এটি বাস্তবে কাজ করে এবং কেউ বিকল্প হিসাবেও দেয়নি?
— CptChaos

2
আমার ডাউনভোট নয় তবে আমি কারণটি অনুমান করছি যে আপনি প্রতিটি অ্যাপে আপনার মূল রুটটির নাম "সূচক" হওয়ার গ্যারান্টি দিতে পারবেন না।
— জোনাথন

3

লারাভেলে চিত্র প্রদর্শন করতে আপনি ইউআরএল :: থেকে ('/') ব্যবহার করতে পারেন। দয়া করে নীচে দেখুন:

<img src="{{URL::to('/')}}/images/{{ $post->image }}" height="100" weight="100"> 

ধরে নিন যে, আপনার চিত্রটি "পাবলিক / ইমেজ" এর অধীনে সঞ্চিত রয়েছে।


3

কেবল অ্যাপ্লিকেশন url পেতে, আপনি কনফিগার করেছেন যে আপনি ব্যবহার করতে পারেন:

Config::get('app.url')

এই সংজ্ঞাটি কেবল লারাভেল ক্লাইমে ব্যবহৃত হয়। app.urlএটি একটি
— ফ্যালব্যাক

1
ঠিক আছে, env ('APP_URL') সম্ভবত সেরা বিকল্প হবে।
— Kenyon

2

আমি এটি ব্যবহার করেছি এবং এটি আমার জন্য লারাভেল 5.3.18 তে কাজ করেছে:

<?php echo URL::to('resources/assets/css/yourcssfile.css') ?>

গুরুত্বপূর্ণ দ্রষ্টব্য: এটি তখনই কাজ করবে যখন আপনি ইতিমধ্যে আপনার ইউআরএল থেকে "সর্বজনীন" মুছে ফেলেছেন। এটি করার জন্য, আপনি এই সহায়ক টিউটোরিয়ালটি পরীক্ষা করে দেখতে পারেন ।


2

যাইহোক, যদি আপনার রুটের কোনও নাম থাকে:

Route::match(['get', 'post'], 'specialWay/edit', 'SpecialwayController@edit')->name('admin.spway.edit');

আপনি route()এই ফাংশনটি ব্যবহার করতে পারেন :

<form method="post" action="{{route('admin.spway.edit')}}" class="form form-horizontal" id="form-spway-edit">

অন্যান্য দরকারী ফাংশন:

$uri = $request->path();
$url = $request->url();
$url = $request->fullUrl();
asset()
app_path();
// ...

https://github.com/laravel/framework/blob/5.4/src/Illuminate/Foundation/helpers.php


2

এটা যাচাই কর -

<a href="{{url('/abc/xyz')}}">Go</a>

এটি আমার পক্ষে কাজ করছে এবং আমি আশা করি এটি আপনার পক্ষে কাজ করবে।


1

আপনি নিম্নলিখিত অনুযায়ী facades বা সহায়তা ফাংশন ব্যবহার করতে পারেন।

echo URL::to('/');
echo url();

অনুরোধের জন্য সিমফনি উপাদান ব্যবহার করে লারাভেল, নীচে লারাভেল অভ্যন্তরীণ লজিক।

namespace Symfony\Component\HttpFoundation;
/**
* {@inheritdoc}
*/
protected function prepareBaseUrl()
{
    $baseUrl = $this->server->get('SCRIPT_NAME');

    if (false === strpos($this->server->get('REQUEST_URI'), $baseUrl)) {
        // assume mod_rewrite
        return rtrim(dirname($baseUrl), '/\\');
    }

    return $baseUrl;
}

0

পরিবেশের ভেরিয়েবল APP_URL এর মান প্রদর্শন করতে বেস urlটি পাওয়ার জন্য আমি অন্য একটি উপায় পেয়েছি

env('APP_URL')

যা http: // ডোমেন_আপনার // আপনার_উইউবসাইটের মতো বেস url প্রদর্শন করবে । এটিকে সাবধান করে নিন যে আপনি .env ফাইলে পরিবেশের পরিবর্তনশীল সেট করেছেন (এটি মূল ফোল্ডারে উপস্থিত রয়েছে)।


0

আপনি অনুরোধ থেকে এটি পেতে পারেন, লারাভেল 5 এ

request()->getSchemeAndHttpHost();

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.