将变量从自定义 Laravel Helpers 传递到 Blade 文件
Pass variable from custom Laravel Helpers to Blade file
我正在尝试创建一个助手来集中一个复杂的 Form::select。
我的帮手:
namespace App\Helpers;
use Log;
use App\Countries;
class Address {
public static function country() {
$countries = Countries::orderby('name_zh','asc');
$form = "Form::select('countries', $countries);";
return $form;
}
}
我的看法:
{!! Address::country() !!}
我想要这个 select 表单和来自这个助手的 $countries
变量,并在我的视图中显示一个下拉列表。我该怎么做?
在你的助手中使用 Laravel 集体助手创建 select return 它在视图中,这样做:
public static function country() {
$countries = Countries::orderby('name_zh','asc')
->pluck('name', 'id');
return Form::select('countries', $countries);
}
在视图中调用方法:
{{ Address::country() }}
或者如果你也想要 $countries
变量,你可以将它从控制器发送到视图,然后再将它发送到助手:
public function controllerFunction() {
$countries = Countries::orderby('name_zh','asc')
->get();
return view('yourView')->withCountries($countries);
}
并且在视图中您可以访问此 $countries
然后将其传递给助手 :
{{ Address::country($countries->pluck('name', 'id')) }}
这次的帮手应该是这样的:
public static function country($countries) {
return Form::select('countries', $countries);
}
不确定是否真正理解你的问题...
但是如果你想将你的 $countries
变量传递给你的视图,你的函数必须简单地 return 这个变量。
public static function country()
{
$countries = ...;
return $countries;
}
那么,两个选择:
在你的控制器中使用你的函数
use App\Helpers\Address;
// code code code
public function controllerFunc()
{
// code
$countries = Address::country();
return view('yourview', compact($countries));
}
并在您的视图中获取它:
<!-- Dump your $countries (from controller) var -->
{{ dd($countries) }}
在视图中使用您的函数
<!-- Dump your $countries (from helper) var -->
{{ dd(\App\Helpers\Address::country()) }}
现在,如果你想直接传递你的 select,那么在你的静态函数中,return Form::select('countries', $countries')
就像 Maraboc 说的那样。
我正在尝试创建一个助手来集中一个复杂的 Form::select。
我的帮手:
namespace App\Helpers;
use Log;
use App\Countries;
class Address {
public static function country() {
$countries = Countries::orderby('name_zh','asc');
$form = "Form::select('countries', $countries);";
return $form;
}
}
我的看法:
{!! Address::country() !!}
我想要这个 select 表单和来自这个助手的 $countries
变量,并在我的视图中显示一个下拉列表。我该怎么做?
在你的助手中使用 Laravel 集体助手创建 select return 它在视图中,这样做:
public static function country() {
$countries = Countries::orderby('name_zh','asc')
->pluck('name', 'id');
return Form::select('countries', $countries);
}
在视图中调用方法:
{{ Address::country() }}
或者如果你也想要 $countries
变量,你可以将它从控制器发送到视图,然后再将它发送到助手:
public function controllerFunction() {
$countries = Countries::orderby('name_zh','asc')
->get();
return view('yourView')->withCountries($countries);
}
并且在视图中您可以访问此 $countries
然后将其传递给助手 :
{{ Address::country($countries->pluck('name', 'id')) }}
这次的帮手应该是这样的:
public static function country($countries) {
return Form::select('countries', $countries);
}
不确定是否真正理解你的问题...
但是如果你想将你的 $countries
变量传递给你的视图,你的函数必须简单地 return 这个变量。
public static function country()
{
$countries = ...;
return $countries;
}
那么,两个选择:
在你的控制器中使用你的函数
use App\Helpers\Address; // code code code public function controllerFunc() { // code $countries = Address::country(); return view('yourview', compact($countries)); }
并在您的视图中获取它:
<!-- Dump your $countries (from controller) var --> {{ dd($countries) }}
在视图中使用您的函数
<!-- Dump your $countries (from helper) var --> {{ dd(\App\Helpers\Address::country()) }}
现在,如果你想直接传递你的 select,那么在你的静态函数中,return Form::select('countries', $countries')
就像 Maraboc 说的那样。