使用 compact 将数组从控制器传递到视图 laravel
Passing an array from controller to view laravel using compact
我正在使用 laravel 5.3(make:auth 自动注册和用户身份验证生成器),我想让用户在注册表中选择他们的标签。
我想将 $tags = App\Tag::all();
传递给位于 views\auth\register.blade.php
的 register.blade.php
文件。
我找到了这个方法:
public function showRegistrationForm()
{
return view('auth.register');
}
我想做:
public function showRegistrationForm()
{
$tags = App\Tag::all();
return view('auth.register', compact($tags));
}
但是我在尝试访问 register.blade.php
文件时得到未定义的变量 'tags'
。
不要提供变量本身,使用时提供变量名compact
。
return view('auth.register', compact('tags'));
首先你需要知道这个:
模型,视图,控制器;
控制器是中心点,即从模型获取数据并将数据传递给视图或普通视图。那么这是什么意思:
public function showRegistrationForm()
{
return view('auth.register');
}
这里 returns 是一个简单的视图。下面 returns 是一个包含模型数据的视图,在你的例子中 App\Tag:
和 App\Tag::all()
是一个集合,即带有数据集的容器;
public function showRegistrationForm()
{
$tags = App\Tag::all();
return view('auth.register', compact($tags));
}
或者更好的是,与其压缩数组,不如创建一个新数组并传递数据集,怎么做?
return view('auth.register', ['tags' => $tags]);
调试应用的方法如下:使用以下方法:
public function showRegistrationForm()
{
$tags = App\Tag::all();
dd($tags);
//return view('auth.register', compact($tags));
}
您看到数组或错误了吗?如果是数组,那么你的数据集被传递给视图,如果不是,那么就会出现模型不存在之类的错误,只需检查你的日志文件。
祝你好运。
如果你想使用 compact 然后像这样使用
return view('auth.register', compact('tags'));
在 laravel 5.3 中它们有如下变化,但即使您可以同时使用这两种方法 :)
return view('auth.register', ['tags' => $tags]);
我正在使用 laravel 5.3(make:auth 自动注册和用户身份验证生成器),我想让用户在注册表中选择他们的标签。
我想将 $tags = App\Tag::all();
传递给位于 views\auth\register.blade.php
的 register.blade.php
文件。
我找到了这个方法:
public function showRegistrationForm()
{
return view('auth.register');
}
我想做:
public function showRegistrationForm()
{
$tags = App\Tag::all();
return view('auth.register', compact($tags));
}
但是我在尝试访问 register.blade.php
文件时得到未定义的变量 'tags'
。
不要提供变量本身,使用时提供变量名compact
。
return view('auth.register', compact('tags'));
首先你需要知道这个:
模型,视图,控制器;
控制器是中心点,即从模型获取数据并将数据传递给视图或普通视图。那么这是什么意思:
public function showRegistrationForm()
{
return view('auth.register');
}
这里 returns 是一个简单的视图。下面 returns 是一个包含模型数据的视图,在你的例子中 App\Tag:
和 App\Tag::all()
是一个集合,即带有数据集的容器;
public function showRegistrationForm()
{
$tags = App\Tag::all();
return view('auth.register', compact($tags));
}
或者更好的是,与其压缩数组,不如创建一个新数组并传递数据集,怎么做?
return view('auth.register', ['tags' => $tags]);
调试应用的方法如下:使用以下方法:
public function showRegistrationForm()
{
$tags = App\Tag::all();
dd($tags);
//return view('auth.register', compact($tags));
}
您看到数组或错误了吗?如果是数组,那么你的数据集被传递给视图,如果不是,那么就会出现模型不存在之类的错误,只需检查你的日志文件。
祝你好运。
如果你想使用 compact 然后像这样使用
return view('auth.register', compact('tags'));
在 laravel 5.3 中它们有如下变化,但即使您可以同时使用这两种方法 :)
return view('auth.register', ['tags' => $tags]);