这是我的Route.php
Route::get('users/{user_name}/{source}/{destination}/{members}' , 'Userscontroller@index');
我想要url中的成员数组。我如何获得它以及如何在index()
中传递给UsersController
。
这是我的UsersController.php
public function index($user_name, $source , $destination , $members[] )
{
$users = DB::table('users')->insert(array(
'user_name' => $user_name,
'source' => $source,
'destination' => $destination,
));
}
我如何在数据库中存储成员数组?
先谢谢你。
答案 0 :(得分:1)
您可以这样做:
Route::get('users/{user_name}/{source}/{destination}/{members}' , 'Userscontroller@index')->where(['members'=>'.*']);
然后在你的控制器......
$members = explode("/", $members);
这可以让你使用像
这样的网址/用户/ USER_NAME /源/目的地/的member1 / member2 / member3
为了在使用雄辩的数据库中存储数组...我刚刚意识到你在这里没有使用模型,而是直接插入数据库,我建议创建一个用户模型然后你可以用下面。否则,对于此数据的任何请求,您都需要记住以序列化数据的任何格式手动取消序列化。
在模型(https://laravel.com/docs/5.2/eloquent-mutators#attribute-casting)中使用属性转换:
添加到模型:
protected $casts = ['members'=>'array'];
然后你让Laravel为你做其余的事情:
$users = Users::insert(array(
'user_name' => $user_name,
'source' => $source,
'destination' => $destination,
'members' => $members
));