PDA

View Full Version : استفاده از متغیر تعریف شده در کنترلر ، در ویو ؟؟



saba_kamali
سه شنبه 31 شهریور 1394, 16:38 عصر
با سلام و احترام

ببخشید میخواستم بپرسم چطور میشه از یک متغیری که در کنترلر تعریف شده است در ویو استفاده کنیم و این کار را بدون منتقل کردن آن متغیر در ویو انجام دهیم.
مثلا در کنترلر متغیری مانند زیر داریم
$myvar



<?php
class HomeController extends BaseController{
var $myvar='test'
public function index() { return View::make('home'); }///function index


}///HomeController

و میخواهیم از این متغیر در وبو استفاده کنیم(بدون اینکه آن را به ویو پاس بدهیم و مثلا از دستوری مثل زیر نخواهیم استفاده کنیم

return view('home')->with('$myvar','test')

hamedarian2009
سه شنبه 31 شهریور 1394, 19:50 عصر
سلام. خب چرا نمی خواهید متغیر رو به ویو پاس بدهید؟

می تونید تو پوشه app/start و فایل global.php از View Composer استفاده کنید مثلا خط زیر را به انتهای فایل اضافه کنید:


View::composer('hello', function ($view){
$view->with('var', 'test');
});

حالا تو ویو hello.php می تونید به متغیر var$ دسترسی داشته باشید. اگه هم می خواهید تو همه ویوها قابل دسترسی باشه از View share استفاده کنید


View::share('var', 'Test');

perkas
سه شنبه 31 شهریور 1394, 20:17 عصر
چند روش برای ارسال متغیر به ویو :

روش اول :


در کنترلر :

public function text() { $name="reza"; return view('page.test')->with ('name'=$name); }

در ویو :


<?= $name ?>
یا

{{$name}}

روش دوم :



public function text() { return view('page.test')->with ([ 'fname'=>'reza', 'lname'=>'xxx' ]); }

نمایش در ویو :


{{$fname}}
{{$lname}}



روش سوم :


public function text() { $data['fname']='reza'; $data['lname']='xxxx'; return view('page.test',$data); ]); }

در ویو :


{{$fname}}
{{$lname}}


روش چهارم :


public function text() { $fname='reza'; $lname='xxxx'; return view('page.test',compact('fname','lname')); ]); }

در ویو :


{{$fname}}
{{$lname}}



توجه : کلا مقادیر متغیرها رو به این اشکال میشه تو ویو نمایش داد :


{{$var}}
{!!$var!!}
<?=$var?>