লারাভেল ফলক টেমপ্লেটে কীভাবে ভেরিয়েবল সেট করা যায়


247

আমি লারাভেল ব্লেড পড়ছি ডকুমেন্টেশন এবং পরে ব্যবহারের জন্য কোনও টেমপ্লেটের অভ্যন্তরে কীভাবে ভেরিয়েবলগুলি অর্পণ করা যায় তা আমি বুঝতে পারি না। আমি করতে পারি না {{ $old_section = "whatever" }}কারণ এটি "যাই হোক না কেন" প্রতিধ্বনিত হবে এবং আমি তা চাই না।

আমি বুঝতে পারি যে আমি করতে পারি <?php $old_section = "whatever"; ?> , তবে এটি মার্জিত নয়।

ব্লেড টেম্পলেটে এটি করার আরও ভাল, মার্জিত উপায় কি আছে?



এটি প্রায়শই পরীক্ষার জন্য কার্যকর হয়, বিশেষত যদি আপনি টেম্পলেটটিতে কাজ করছেন তবে অন্য কেউ পিএইচপি অংশে কাজ করে। আপনি যখন পরীক্ষার কাজটি করেন তখন ঘোষণাকে সরাতে সাবধান হন।
ট্রাইসিস

খালি খালি করায় কি ভুল <?php $old_section = "whatever"; ?>? আমি এটি বেশ পঠনযোগ্য বলে মনে করি।
জাইমে হাবলুটজেল

@ জাইম হাবলুটজেল উত্তরটি আমার মতে প্রশ্নটিতে: এটি মার্জিত নয়।
দ্বৈত_

উত্তর:


122

এটি কোনও দৃশ্যে করতে নিরুৎসাহিত করা হয় যাতে এর জন্য কোনও ব্লেড ট্যাগ নেই। আপনি যদি নিজের ব্লেড দৃশ্যে এটি করতে চান তবে আপনি পিএইচপি ট্যাগটি লিখেছিলেন বা খালি নতুন ব্লেড ট্যাগটি নিবন্ধ করতে পারেন। শুধু একটি উদাহরণ:

<?php
/**
 * <code>
 * {? $old_section = "whatever" ?}
 * </code>
 */
Blade::extend(function($value) {
    return preg_replace('/\{\?(.+)\?\}/', '<?php ${1} ?>', $value);
});

9
ভিউতে ভেরিয়েবলের কিছু ব্যবহার রয়েছে। এটি দুর্দান্ত দেখাচ্ছে! এই কোডটি রাখার জন্য ভাল জায়গা কোথায় হবে?
দ্বৈত_

1
আপনি এটি আপনার অ্যাপ্লিকেশন / start.php এ রাখতে পারেন বা যদি আপনার মতো আরও কিছু জিনিস থাকে তবে এটি একটি পৃথক ফাইলে রেখে সেখানে অন্তর্ভুক্ত করতে পারেন। লারাভেল এইভাবে খুব আলগা, আপনি এমনকি পাতলা একটি নিয়ামক রাখতে পারেন। এই দৃশ্যটি রেন্ডার করার আগে আপনাকে কেবল এগুলি করতে হবে।
টিএলগ্রিগ

19
{?কেবলমাত্র নেটিভ ব্যবহার না করে এই অতিরিক্ত কোডটি যুক্ত করার যুক্তি কী <??
জাস্টিন

1
যদি এটি করতে নিরুৎসাহিত করা হয়, তবে নিম্নলিখিতগুলি করার জন্য আরও "যথাযথ" উপায় আছে কি? আমার একটি সাইট রয়েছে যেখানে শিরোনামটি প্রধান অ্যাপ্লিকেশন দর্শনে {{$ শিরোনাম} as হিসাবে রেন্ডার করা হয়েছে, এতে একটি সাবসিস্টেম রয়েছে যার শিরোনামটিতে পৃষ্ঠা নম্বর যুক্ত করতে হবে ("অ্যাপ্লিকেশন ফর্ম পৃষ্ঠা {$ $ পৃষ্ঠা}}") এবং আমি to পৃষ্ঠাটি ভিউতে যাচ্ছি (যা ভিউয়ের মধ্যে অন্যথায় ব্যবহৃত হয়)। আমি প্রতিটি নিয়ামক কলটিতে শিরোনামটি তৈরি করতে চাই না, আমি কেবল পৃষ্ঠা নম্বরটি দেখতে পাঠাতে চাই - যদি কোনও দিন আমি বেস শিরোনামটি পরিবর্তন করতে চাই। আমি এখন <? পিএইচপি $ শিরোনাম = ...?> ব্যবহার করছি, তবে এর থেকেও কি আরও সঠিক উপায় আছে?
jdavidbakr

4
ভেরিয়েবলগুলি আপনার দৃষ্টিতে ইনলাইন ঘোষিত না হয়ে কন্ট্রোলার থেকে পাস করা উচিত। যদি কোনও গ্লোবাল টেম্পলেটটির কোনও ভেরিয়েবলের প্রয়োজন হয় তবে আপনি এটিকে পরিষেবা সরবরাহকারী স্ট্যাকওভারফ্লো . com/ a/ 36780419/922522 এ সেট করতে পারেন । যদি কোনও পৃষ্ঠার নির্দিষ্ট টেম্পলেটটির একটি পরিবর্তনশীল প্রয়োজন, তবে @ ফলন ব্যবহার করুন এবং একটি নিয়ামকযুক্ত শিশু দর্শন থেকে এটি পাস করুন। লারাভেল ডডকস
জাস্টিন

361

লার্ভেল 5.5 এবং আপ

@ পিএফপি ব্লেড নির্দেশিকা আর ইনলাইন ট্যাগ গ্রহণ করে না। পরিবর্তে, নির্দেশের সম্পূর্ণ ফর্মটি ব্যবহার করুন:

@php
$i = 1
@endphp

লার্ভেল 5.2 এবং আপ

আপনি কেবল ব্যবহার করতে পারেন:

@php ($i = 1)

অথবা আপনি এটি একটি ব্লক বিবৃতিতে ব্যবহার করতে পারেন:

@php
$i = 1
@endphp

লারাভেল 5

ফলকটি এর মতো প্রসারিত করুন:

/*
|--------------------------------------------------------------------------
| Extend blade so we can define a variable
| <code>
| @define $variable = "whatever"
| </code>
|--------------------------------------------------------------------------
*/

\Blade::extend(function($value) {
    return preg_replace('/\@define(.+)/', '<?php ${1}; ?>', $value);
});

তারপরে নিম্নলিখিতগুলির একটি করুন:

তাত্ক্ষণিক সমাধান: আপনি যদি অলস হন তবে কেবল অ্যাপসোসভারপ্রোভাইডার.এফপি এর বুট () ফাংশনে কোডটি দিন।

আরও ভাল সমাধান: একটি নিজস্ব পরিষেবা সরবরাহকারী তৈরি করুন। দেখাHttps://stackoverflow.com/a/28641054/2169147লারাভেল ৫-তে ব্লেড কীভাবে প্রসারিত করা যায় সে সম্পর্কে It's এটি আরও কিছুটা কাজ, তবে কীভাবে সরবরাহকারী ব্যবহার করবেন সে সম্পর্কে একটি ভাল অনুশীলন :)

লারাভেল 4

আপনি কেবল উপরের কোডটি অ্যাপ / স্টার্ট / গ্লোবাল.পিপি (বা অন্য কোনও জায়গার নীচে রেখে দিতে পারেন যদি আপনি এটি আরও ভাল মনে করেন)।


উপরের পরিবর্তনের পরে, আপনি ব্যবহার করতে পারেন:

@define $i = 1

একটি পরিবর্তনশীল সংজ্ঞায়িত করতে।


5
নিস! দয়া করে মনে রাখবেন যে আপনি আপনার প্রয়োগের সাথে কোনও পিএইচপি বিবৃতি কার্যকর করতে পারেন। আমি এটি @ পিএফপি এর মতো সোয়েমিংয়ের নামকরণ করব। খুব সহজ ...
আইগাস্টার

খুব সত্য, আইগাস্টার। আপনি চাইলে 'পিএইচপি' এর জন্য 'ডিফাইন' এর নাম পরিবর্তন করতে পারেন, তবে এটি আপনার টেমপ্লেটগুলিতে পিএইচপি অতিরিক্ত ব্যবহার করার সম্ভাবনাটি উন্মুক্ত করে :)
পিম

1
ধন্যবাদ @ সিডিলাফন্টেজনে, আপনি যদি নেমস্পেসিং ব্যবহার করছেন (এবং আপনার উচিত), the সত্যই প্রয়োজন। আমি উপরের কোডে \ যুক্ত করেছি।
পিম

1
দয়া করে নোট করুন যে লারাভেল ৫.২ থেকে আপনার প্রায় সঠিক বাস্তবায়ন মানক । আপনি ব্যবহার করতে পারেন @php(@i = 1)বা একটি ব্লক বিবৃতি এটি ব্যবহার (সঙ্গে ঘনিষ্ঠ @endphp)
Daan

1
"@? পিএইচপি" "?>" এর চেয়ে "@ php" "@endphp" কীভাবে "আরও মার্জিত"? এটি এমনকি কয়েক অক্ষর দীর্ঘ! এটি কেবল এই কারণেই এটি অন্যান্য ব্লেড নির্দেশকের মতো "@" দিয়ে শুরু হয়? আমরা বিকাশকারীরা কিছু অবসেসিভ - বাধ্যতামূলক গুচ্ছ! ;-)
ওএমএ

116

ভিতরে , আপনি ভেরিয়েবলগুলি সংজ্ঞায়িত / সেট করতে টেম্পলেট মন্তব্য সিনট্যাক্স ব্যবহার করতে পারেন।

মন্তব্য সিনট্যাক্স হয় {{-- anything here is comment --}} এবং এটি রেন্ডার করা হয় ইঞ্জিন হিসাবে

<?php /* anything here is comment */ ?>

সুতরাং সামান্য কৌশল দ্বারা আমরা এটি ভেরিয়েবল সংজ্ঞায়িত করতে ব্যবহার করতে পারি, উদাহরণস্বরূপ

{{-- */$i=0;/* --}}

দ্বারা রেন্ডার করা হবে যেমন <?php /* */$i=0;/* */ ?>যা আমাদের জন্য পরিবর্তনশীল সেট করে। কোনও লাইন কোড পরিবর্তন না করে।


2
@ চেষ্টা করে-টোবাইমেয়েলস +1 | না শ্রেষ্ঠ অভ্যাস উপায় কিন্তু নিখুঁত মতো টেমপ্লেটে কোডের দ্রুত হ্যাকিং জন্য ইনলাইন শৈলী HTML- এর জন্য।
মার্কাস হোফম্যান

121
এই কোডটি দেখে যে কেউ আপনাকে ঘৃণা করতে চলেছে সে হিসাবে আমি এই হ্যাকটি করার পরামর্শ দেব না।
জাস্টিন

2
জাস্টিনের সাথে সম্মত হন, মন্তব্য ট্যাগগুলি মন্তব্যের মধ্যে মন্তব্য করতে অস্বীকৃতি জানানোর জন্য এবং অন্য কিছু করা শুরু করার জন্য সমস্যার জন্য জিজ্ঞাসা করছেন
লিওন

27
এটি প্লেইন ওল 'পিএইচপি<?php $i=0; ?>
gyo

3
পিএইচপি ট্যাগ ব্যবহার না করে এটি করার কী লাভ ?? এটি পঠনযোগ্য নয় (মতামতটির মতো লাগে), আরও টাইপিংয়ের প্রয়োজন হয়, এবং পার্সিং সিস্টেমের আপডেটের সাথে এটি ভেঙে যেতে পারে। এমনকি এটির একটি বিন্দু থাকলেও, ফলক টেমপ্লেটে একটি পরিবর্তনশীল কীভাবে সংজ্ঞায়িত করা যায় তার উত্তর নয়। ভোটারদের মধ্যে কী সমস্যা আছে তা জানেন না, সম্ভবত তারা এটি এতটা 'মজাদার' পেয়েছেন?
meh

52

একটি সাধারণ ভারসাম্য রয়েছে যার জন্য আপনাকে কোনও কোড পরিবর্তন করতে হবে না এবং এটি লারাভেল 4 এও কাজ করে।

আপনি কেবলমাত্র =একটি @ifবিবৃতিতে পাস করা এক্সপ্রেশনটিতে একটি অ্যাসাইনমেন্ট অপারেটর ( ) ব্যবহার করেন (উদাহরণস্বরূপ) কোনও অপারেটরের যেমন ==

@if ($variable = 'any data, be it string, variable or OOP') @endif

তারপরে আপনি এটিকে যে কোনও জায়গায় ব্যবহার করতে পারবেন অন্য যে কোনও ভেরিয়েবল ব্যবহার করতে পারেন

{{ $variable }}

একমাত্র খারাপ দিকটি হ'ল আপনার অ্যাসাইনমেন্টটি এমন কাউকে ভুল হিসাবে দেখবে যা অবগত নয় যে আপনি এই কাজটি একদম কাজ হিসাবে করছেন।


27

ইয়াও এটিকে খুব জটিল করে তুলছে।

কেবল প্লেইন পিএইচপি ব্যবহার করুন

<?php $i = 1; ?>
{{$i}}

donesies।

(বা https://github.com/alexdover/blade-set দেখতেও বেশ সোজা লাগে)

আমরা সমস্ত দর্শনগুলিতে ভেরিয়েবল সেট করে সিস্টেমটিকে "হ্যাকিং" করছি, তাহলে "হ্যাক" আরও জটিল করে তুলুন কেন তবে এটি হওয়া দরকার?

লারাভেল 4-এ পরীক্ষিত।

আরেকটি সুবিধা হ'ল সিনট্যাক্স হাইলাইট করা সঠিকভাবে কাজ করে (আমি মন্তব্য হ্যাক আগে ব্যবহার করছিলাম এবং এটি পড়তে ভীষণ রকম হয়েছিল)


21

আপনি ফলক টেম্প্লেটিং ইঞ্জিনে নিম্নলিখিত পদ্ধতিগুলি পরিবর্তন করতে পারেন:

1. সাধারণ পিএইচপি ব্লক
সেটিং পরিবর্তনশীল: <?php $hello = "Hello World!"; ?>
আউটপুট: {{$hello}}

2. ব্লেড পিএইচপি ব্লক
সেটিং পরিবর্তনশীল: @php $hello = "Hello World!"; @endphp
আউটপুট: {{$hello}}



15

আপনি ভিউ ফাইলটিতে একটি ভেরিয়েবল সেট করতে পারেন তবে এটি সেট করা ঠিক তেমন মুদ্রণ করা হবে। যাইহোক, একটি workaround আছে। আপনি অব্যবহৃত অংশের মধ্যে ভেরিয়েবল সেট করতে পারেন। উদাহরণ:

@section('someSection')
  {{ $yourVar = 'Your value' }}
@endsection

তারপরে আপনি এটি যে কোনও জায়গায় {{ $yourVar }}মুদ্রণ Your valueকরতে পারবেন তবে ভেরিয়েবলটি সংরক্ষণ করার পরে আপনি আউটপুট পাবেন না।

সম্পাদনা: বিভাগটির নামকরণ করা প্রয়োজন অন্যথায় একটি ব্যতিক্রম ছুঁড়ে দেওয়া হবে।


অন্য কোনও কাজ অন্তর্ভুক্ত করার দরকার নেই অনির্ধারিত সম্পত্তি: আলোকসজ্জা \ দেখুন \ কারখানা :: $ স্টার্টসেকশন (দেখুন: / home/vagrant/Code/dompetspy/resources/views/reviews/index.blade.php)
ম্যাক্সি 32

14

লারাভেল 4 এ:

আপনি যদি কেবলমাত্র আপনার টেম্পলেট নয়, আপনার সমস্ত দর্শনগুলিতে পরিবর্তনশীল অ্যাক্সেসযোগ্য চান তবে View::shareএটি একটি দুর্দান্ত পদ্ধতি ( এই ব্লগে আরও তথ্য )।

কেবল অ্যাপ / কন্ট্রোলার / বেসকন্ট্রোলআরএফপিতে নিম্নলিখিতগুলি যুক্ত করুন

class BaseController extends Controller
{
  public function __construct()
  {                   
    // Share a var with all views
    View::share('myvar', 'some value');
  }
}

এবং এখন $myvarআপনার টেমপ্লেট সহ - আপনার সমস্ত দর্শন উপলব্ধ হবে।

আমি আমার চিত্রগুলির জন্য পরিবেশ নির্দিষ্ট সংস্থান URL সেট করতে এটি ব্যবহার করেছি।


1
এটিই আমি খুঁজছিলাম: ডাটাবেসে সদৃশ কল এড়ানোর দুর্দান্ত উপায়!
clod986

লারাভেল 5 এ এটি কোনও বিকল্প বলে মনে হচ্ছে না?
গড্ডার্ড

@ Goddard আপনি এখনও পারেন। সিনট্যাক্স যদিও পরিবর্তিত হয়েছে: stackoverflow.com/a/36780419/922522
জাস্টিন

8

এবং হঠাৎ কিছুই উপস্থিত হবে না। আমার অভিজ্ঞতা থেকে, যদি আপনাকে এমন কিছু করতে হয় তবে কোনও মডেলের পদ্ধতিতে এইচটিএমএল প্রস্তুত করুন বা আপনার কোডটি অ্যারে বা কিছুতে পুনর্গঠিত করুন।

এখানে কেবল 1 টি উপায় নেই।

{{ $x = 1 ? '' : '' }}

11
মডেল এইচটিএমএল প্রস্তুত? এটি কল্পনাযোগ্য কুরুচিপূর্ণ জিনিস।
দ্বৈততা_

@ দ্বৈততা_ আপনি ঘোষণা করছেন এবং আপনার দৃষ্টিতে পরিবর্তনশীল পরিবর্তন করছেন। আমি বলেছিলাম আপনি সম্ভবত আপনার কোডটি ভুলভাবে সংগঠিত করছেন। Lrn 2 স্থপতি।
মাইকেল জে। ক্যালকিনস

3
নিশ্চিত বিষয়, মাইকেল ... এই ভেরিয়েবলগুলি যেমন ভেরিয়েবলগুলি নয় $users = ...তবে লাইনগুলির পাশাপাশি কিছু $css_class = ..., তাই কঠোরভাবে ভেরিয়েবলগুলি ডিজাইনার দ্বারা নির্ধারিত হিসাবে মডেল বা নিয়ামকের অন্তর্ভুক্ত নয় এমনভাবে নকশা করুন।
দ্বৈততা_

2
যদি আপনাকে সেই পথে যেতে হয় তবে আমি আরও সহজ এবং মার্জিত সমাধানটি পছন্দ করি: {{''; $ x = 1}}
ড্যানিয়েল

6

আমি @ পিমের দেওয়া উত্তরটি প্রসারিত করতে যাচ্ছি।

এটি আপনার অ্যাপসোসভারপ্রোভাইডার বুট পদ্ধতিতে যুক্ত করুন

<?php
/*
|--------------------------------------------------------------------------
| Extend blade so we can define a variable
| <code>
| @set(name, value)
| </code>
|--------------------------------------------------------------------------
*/

Blade::directive('set', function($expression) {
    list($name, $val) = explode(',', $expression);
    return "<?php {$name} = {$val}; ?>";
});

এইভাবে আপনি কোনও পিএইচপি এক্সপ্রেশন লেখার ক্ষমতা প্রকাশ করবেন না।

আপনি এই নির্দেশটি যেমন ব্যবহার করতে পারেন:

@set($var, 10)
@set($var2, 'some string')


5

লারাভেল 5.1, 5.2 এ :

https://laravel.com/docs/5.2/views#sharing-data-with-all-views

আপনার অ্যাপ্লিকেশন দ্বারা রেন্ডার করা সমস্ত দর্শনগুলির সাথে আপনাকে ডেটার একটি অংশ ভাগ করতে হতে পারে । আপনি দেখতে কারখানার ভাগের পদ্ধতিটি ব্যবহার করে এটি করতে পারেন। সাধারণত, কোনও পরিষেবা সরবরাহকারীর বুট পদ্ধতির মধ্যে ভাগ করার জন্য আপনার কল করা উচিত। আপনি এগুলিকে অ্যাপসোসভারপ্রাইভাইডারে যুক্ত করতে বা তাদের থাকার জন্য একটি পৃথক পরিষেবা সরবরাহকারী নির্বিঘ্ন করতে পারেন।

ফাইল সম্পাদনা করুন: /app/Providers/AppServiceProvider.php

<?php

namespace App\Providers;

class AppServiceProvider extends ServiceProvider
{        
    public function boot()
    {
        view()->share('key', 'value');
    }

    public function register()
    {
        // ...
    }
}

5

আমি প্রকাশিত প্যাকেজটি আপনি ব্যবহার করতে পারেন: https://github.com/sineld/bladeset

তারপরে আপনি সহজেই আপনার পরিবর্তনশীল সেট করুন:

@set('myVariable', $existing_variable)

// or

@set("myVariable", "Hello, World!")


3

আপনার যদি পিএইচপি 7.0 থাকে:

সহজ এবং সর্বাধিক কার্যকর উপায় হ'ল বন্ধনীগুলির মধ্যে অ্যাসাইনমেন্ট

নিয়মটি সহজ: আপনি কি একবারে আপনার পরিবর্তনশীল ব্যবহার করেন? তারপরে এটি বন্ধুর মধ্যে প্রথমবার ব্যবহার করা হয়েছে তা ঘোষণা করুন, শান্ত থাকুন এবং চালিয়ে যান।

@if(($users = User::all())->count())
  @foreach($users as $user)
    {{ $user->name }}
  @endforeach
@else
  There are no users.
@endif

এবং হ্যাঁ, আমি জানি @forelse, এটি কেবল একটি ডেমো।

যেহেতু আপনার ভেরিয়েবলগুলি এখন হিসাবে ঘোষিত হয়েছে এবং যখন সেগুলি ব্যবহৃত হয়, তাই কোনও ব্লেড ওয়ার্কআরউন্ডের প্রয়োজন হয় না।


2

আপনি যে পারেন তা আমি ভাবি না - তবে আবার, এই ধরণের যুক্তি সম্ভবত আপনার নিয়ামককে পরিচালনা করা উচিত এবং ইতিমধ্যে সেট করা দৃশ্যে যেতে হবে।


6
কিছু পরিবর্তনশীল দৃables়ভাবে দেখার জন্য। $previous_group_name, $separator_printedইত্যাদি ইত্যাদি
দ্বৈততা

2
যদি এটি কেবল দেখার জন্য হয় তবে আপনারা এটি নিয়ন্ত্রণকারী থেকে দেখার জন্য পাস করা উচিত। আপনি যদি এটি সমস্ত দর্শনর জন্য উপলভ্য চান তবে আমার উত্তরটি ব্যবহার করে দেখুন app/controllers/BaseController.php
জাস্টিন

1
আমি আমার সমস্ত $ ডেটা ভিউতে পাঠাতে একাধিক অ্যারে ব্যবহার করছি
হোস বুধবার

2

ফলক টেমপ্লেটে পরিবর্তনশীল বরাদ্দ করুন, এখানে সমাধানগুলি রয়েছে

আমরা <?php ?>ফলক পৃষ্ঠাতে ট্যাগ ব্যবহার করতে পারি

<?php $var = 'test'; ?>
{{ $var }

অথবা

আমরা বিশেষ সিনট্যাক্স সহ ব্লেড মন্তব্য ব্যবহার করতে পারি

{{--*/ $var = 'test' /*--}}
{{ $var }}

1

মন্তব্যগুলি হ্যাক করা এটির পক্ষে খুব বেশি পঠনযোগ্য উপায় নয়। এছাড়াও সম্পাদকরা এটিকে মন্তব্য হিসাবে রঙ করবেন এবং কোডটি সন্ধান করার সময় কেউ এটিকে মিস করতে পারে।

এরকম কিছু চেষ্টা করুন:

{{ ''; $hello = 'world' }}

এটি এতে সংকলন করবে:

<?php echo ''; $hello = 'world'; ?>

... এবং অ্যাসাইনমেন্টটি করুন এবং কোনও কিছু প্রতিধ্বনি করবেন না।


1

কন্ট্রোলারে ভেরিয়েবল সংজ্ঞায়িত করার জন্য অনুশীলন করা ভাল এবং তারপরে compact()বা ->with()পদ্ধতিটি ব্যবহার করে দেখতে পাস করুন ।

অন্যথায় # টিএলগ্রিগ সেরা উত্তর দিয়েছে।



1

আমি একটি কীতে কোনও মূল্য নির্ধারণ এবং আমার দৃষ্টিতে এটি বহুবার ব্যবহার করার উপায় খুঁজছিলাম। এই ক্ষেত্রে, আপনি @section{"key", "value"}প্রথম স্থানে ব্যবহার করতে পারেন এবং তারপরে @yield{"key"}আপনার ভিউ বা তার সন্তানের অন্যান্য স্থানে মান আউটপুট করতে কল করতে পারেন।


0

আমার মতে লজিকটি নিয়ামকের মধ্যে রাখা এবং এটি ব্যবহার করার জন্য ভিউতে পাস করা ভাল। 'ভিউ :: মেক' পদ্ধতিটি ব্যবহার করে এটি দুটি পদ্ধতির একটির মাধ্যমে করা যেতে পারে। আমি বর্তমানে লারাভেল 3 ব্যবহার করছি তবে আমি নিশ্চিত যে এটি লারাভেল 4 এ একইভাবে রয়েছে।

public function action_hello($userName)
{
    return View::make('hello')->with('name', $userName);
}

অথবা

public function action_hello($first, $last)
{
    $data = array(
        'forename'  => $first,
        'surname' => $last
    );
    return View::make('hello', $data);
}

'উইথ' পদ্ধতিটি শৃঙ্খলাবদ্ধ। তারপরে আপনি উপরেরটি পছন্দ করুন:

<p>Hello {{$name}}</p>

এখানে আরও তথ্য:

http://three.laravel.com/docs/views

http://codehappy.daylerees.com/using-controllers


উপস্থাপনার যুক্তি সেরাভাবে রাখা হয়। কখনও কখনও, আপনাকে ভিউয়ের মধ্যে থেকেই একটি পরিবর্তনশীল তৈরি করতে হবে। যেমন একটি তারিখ বিন্যাস করা। $format='Y-m-d H:i:s';এই উপায়ে আপনি সেই বিন্যাসটি পুনরায় ব্যবহার করতে পারবেন। এটি অবশ্যই নিয়ামকের অন্তর্ভুক্ত নয়। যা বলেছিল, প্রশ্নের জবাবে ... <?php ?>ট্যাগগুলিতে কোনও ভুল নেই ।
গ্রেভি

0

আমার একটি অনুরূপ প্রশ্ন ছিল এবং ভিউ সুরকারদের সাথে আমি কী সঠিক সমাধান বলে মনে করি তা খুঁজে পেয়েছি

সুরকারদের দেখুন দেখুন আপনাকে যখনই কোনও নির্দিষ্ট ভিউ বলা হয় তখন ভেরিয়েবল সেট করতে দেয় এবং সেগুলি নির্দিষ্ট দর্শন বা সম্পূর্ণ দেখার টেমপ্লেট হতে পারে। যাইহোক, আমি জানি এটি প্রশ্নের সরাসরি উত্তর নয় (এবং 2 বছর বেশি দেরী হয়েছে) তবে এটি ফলকের সাহায্যে ভেরিয়েবলগুলি সেট করার চেয়ে আরও দুর্দান্ত সমাধান বলে মনে হচ্ছে।

View::composer(array('AdminViewPath', 'LoginView/subview'), function($view) {
    $view->with(array('bodyClass' => 'admin'));
});

0

লারাভেল 5 আপনি সহজেই এটি করতে পারেন। নিচে দেখ

{{--*/ @$variable_name = 'value'  /*--}}

0

আপনি নীচের চিত্রের মতো বর্ধিত পদ্ধতি ব্যবহার করে ফলক প্রসারিত করতে পারেন ..

Blade::extend(function($value) {
    return preg_replace('/\@var(.+)/', '<?php ${1}; ?>', $value);
});

এর পরে নীচের মত চলক আরম্ভ করুন।

@var $var = "var"

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