[英]How does Laravel's “withVariableName” works?
查看Laravel代碼,我發現它們正在使用以下方法將變量從“路線”傳遞到“視圖”:
$arraysan = ['mike','robert','john']; **//Variable to be passed**
return view('home')->withArraysan($arraysan); **//Variable passed with** name "withArraysan"
在上面的語法中,它們調用了一個不存在的名為withArraysan
的函數。
有人可以解釋一下如何在Laravel中處理它嗎?
一段時間以來,PHP有了magic methods
的概念-這些是特殊方法,可以將其添加到類中以攔截不存在的方法調用。
看來,Laravel瀏覽器__call
-這則攔截的對象對一個未定義的方法的調用,並傳遞這兩個方法的名字被稱為以及參數。 通過這種方式,視圖對象就可以看出, withArraysan
呼叫開始with
和調用的具體方法with
,通過第二部分Arraysan
作為第一個參數,而參數withArraysan
作為第二部分。
如果我有您的問題,那么在Laravel中,他們可以使用魔術方法__call
來處理View
的類,該函數的代碼如下所示
public function __call($method, $parameters)
{
if (Str::startsWith($method, 'with')) {
return $this->with(Str::snake(substr($method, 4)), $parameters[0]);
}
throw new BadMethodCallException("Method [$method] does not exist on view.");
}
你可以在里面找到它
your_project_folder/vendor/laravel/framework/src/Illuminate/View/View.php
$arraysan = ['mike', 'robert', 'john']; // Variable to be passed
return view('home')->with('AnyVariable', $arraysan);
嘗試這個! 這將起作用。
還要簽入home.blade.php,
<?php
print_r($AnyVariable);die;
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.