আমি কোডইগনিটার থেকে সিমফনি ২ তে স্যুইচ করছি someone কেউ দয়া করে কীভাবে আমাকে একটি উদাহরণ দিতে পারেন:
- বেস url পান (রুট নির্দিষ্ট অংশ ছাড়া url)
- বিশ্বব্যাপী এই পরিবর্তনশীলটি টুইগ বান্ডেলে পাস করুন যাতে আমি এটি প্রতিটি টেমপ্লেটে ব্যবহার করতে পারি।
আমি কোডইগনিটার থেকে সিমফনি ২ তে স্যুইচ করছি someone কেউ দয়া করে কীভাবে আমাকে একটি উদাহরণ দিতে পারেন:
উত্তর:
এই রুট ইউআরএল কেন আপনার দরকার? আপনি কি সরাসরি পরম ইউআরএল তৈরি করতে পারবেন না?
{{ url('_demo_hello', { 'name': 'Thomas' }) }}
এই টুইগ কোডটি _ ডেমো_হেলো রুটে পুরো http: // url তৈরি করবে।
আসলে, ওয়েবসাইটটির বেস ইউআরএল পাওয়া কেবল হোমপেজ রুটের পুরো url পাচ্ছে:
{{ url('homepage') }}
( হোমপেজ , বা আপনি যা কিছু বলছেন তা আপনার রাউটিং ফাইলটিতে)।
এটি এখন টুইগ টেম্পলেটগুলিতে বিনামূল্যে পাওয়া যায় (এসএফ 2 সংস্করণ 2.0.14 এ পরীক্ষিত)
{{ app.request.getBaseURL() }}
পরে সিমফনি সংস্করণগুলিতে (২.২-এ পরীক্ষিত) চেষ্টা করুন:
{{ app.request.getSchemeAndHttpHost() }}
{{ app.request.baseUrl }}
(এটি প্রাপ্তকারী পদ্ধতিটি সনাক্ত করবে এবং এটি স্বয়ংক্রিয়ভাবে কল হবে)
{{ app.request.getSchemeAndHttpHost() }}
কাজ করে!
আপনি নতুন অনুরোধ পদ্ধতিটি ব্যবহার করতে পারেন getSchemeAndHttpHost()
:
{{ app.request.getSchemeAndHttpHost() }}
সিমফনি v2.1 থেকে v4.1 + এর মাধ্যমে বৈধ
আপনি যদি সিম্ফনি অ্যাপ্লিকেশনটির বেস ইউআরএলটি চান তবে রাউটার পথ এবং ক্যোয়ারী স্ট্রিং ব্যতীত আপনার কাজটি কীভাবে হয় তার সমান আপনার getSchemeAndHttpHost()
একসাথে একসাথে ব্যবহার করা উচিত ।getBaseUrl()
getUri()
{{ app.request.schemeAndHttpHost ~ app.request.baseUrl }}
উদাহরণস্বরূপ, যদি আপনার সিমফোনির ওয়েবসাইট ইউআরএল থাকে https://www.stackoverflow.com/app1/
তবে এই দুটি পদ্ধতি এই মানগুলি ফিরিয়ে দেয়:
getSchemeAndHttpHost
https://www.stackoverflow.com
getBaseUrl
/app1
দ্রষ্টব্য: getBaseUrl()
স্ক্রিপ্ট ফাইলের নাম অন্তর্ভুক্ত (যেমন /app.php
) এটি যদি আপনার URL এ থাকে in
সিমফনি ২.৩+ এর জন্য, একটি নিয়ামকটিতে বেস ইউআরএল পাওয়া উচিত
$this->get('request')->getSchemeAndHttpHost();
$this->container->get('request')->getSchemeAndHttpHost()
<base href="{{ app.request.getSchemeAndHttpHost() }}"/>
বা নিয়ামক থেকে
$this->container->get('router')->getContext()->getSchemeAndHttpHost()
জেএস / সিএসএস / ইমেজ ইউআরএলগুলির জন্য হ্যান্ডি ফাংশন অ্যাসেট রয়েছে ()
<img src="{{ asset('image/logo.png') }}"/>
বিশ্বব্যাপী টেমপ্লেটে পরিবর্তনশীলটি পাস করার পরিবর্তে, আপনি একটি বেস টেম্পলেটটি সংজ্ঞায়িত করতে এবং এতে 'গ্লোবাল অংশ' রেন্ডার করতে পারেন। বেস টেমপ্লেট উত্তরাধিকার সূত্রে প্রাপ্ত হতে পারে।
সিমফনি ডকুমেন্টেশন থেকে রেকর্ডিং টেম্পলেট উদাহরণ:
<div id="sidebar">
{% render "AcmeArticleBundle:Article:recentArticles" with {'max': 3} %}
</div>
বর্তমান সিমফনি সংস্করণের জন্য (এই উত্তরটি লেখার ক্ষেত্রে এটি সিমফনি ৪.১) অন্যান্য কয়েকটি উত্তরের মতো সরাসরি সার্ভিস ধারকটিতে প্রবেশ করবেন না।
পরিবর্তে (আপনি যদি স্ট্যান্ডার্ড পরিষেবাদি কনফিগারেশন ব্যবহার না করেন), টাইপ-হিন্টিং দ্বারা অনুরোধ অবজেক্টটি ইনজেক্ট করুন।
<?php
namespace App\Service;
use Symfony\Component\HttpFoundation\RequestStack;
/**
* The YourService class provides a method for retrieving the base URL.
*
* @package App\Service
*/
class YourService
{
/**
* @var string
*/
protected $baseUrl;
/**
* YourService constructor.
*
* @param \Symfony\Component\HttpFoundation\RequestStack $requestStack
*/
public function __construct(RequestStack $requestStack)
{
$this->baseUrl = $requestStack->getCurrentRequest()->getSchemeAndHttpHost();
}
/**
* Returns the current base URL.
*
* @return string
*/
public function getBaseUrl(): string
{
return $this->baseUrl;
}
}
বর্তমান অনুরোধের অবজেক্টটি কীভাবে পুনরুদ্ধার করবেন সে সম্পর্কে সরকারী সিমফনি ডক্সও দেখুন ।
{{ dump(app.request.server.get('DOCUMENT_ROOT')) }}
সিমফনি 5 এবং একটি নিয়ামক পদ্ধতির সাধারণ পরিস্থিতিতে ইনজেকশনের অনুরোধ অবজেক্টটি ব্যবহার করুন :
public function controllerFunction(Request $request, LoggerInterface $logger)
...
$scheme = $request->getSchemeAndHttpHost();
$logger->info('Domain is: ' . $scheme);
...
//prepare to render
$retarray = array(
...
'scheme' => $scheme,
...
);
return $this->render('Template.html.twig', $retarray);
}
আমি এখানে সমস্ত অপশন চেষ্টা করেছিলাম কিন্তু তারা আমার পক্ষে কাজ করে নি। অবশেষে আমি এটি ব্যবহার করে কাজ পেয়েছিলাম
{{ সাইট URL টি }}
আশা করি এটি এমন কাউকে সহায়তা করে যা এখনও লড়াই করে চলেছে।
site
থাকে?