如何在Laravel 5.2中获取url中的数组数据?

时间:2016-06-23 17:08:09

标签: php laravel-5

这是我的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,
        ));
    }

我如何在数据库中存储成员数组?

先谢谢你。

1 个答案:

答案 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
    ));