我该如何设置这个值? -Getting类stdClass的对象无法转换为字符串

时间:2016-04-11 20:53:56

标签: laravel-5

我正在为现有业务工作的Laravel 5.1应用程序。他们有一个10k记录的客户表。我正在尝试为这些用户创建临时密码,以便他们可以邀请他们在新应用上完成个人资料。

我的想法是为临时密码创建临时表(没有双关语),这样我就可以避免在此练习之外存储未使用的密码。

这是我到目前为止所做的事情;

$users = DB::table('customers')->take(10)->get();

    foreach($users as $user){
        $password = str_random(8);
        DB::table('temp_passwords')->insert([
            'custId' => $user->id,
            'tempPass' => $password,
            'hash' => Hash::make($password)
        ]);
        $user->hasPass = 1;
        $user->save();
    }

这适用于生成和散列密码。然后我想我会在客户表('hasPass')中设置一个标志,这样我就可以跟踪需要获取的记录。

那部分不起作用;

        $user->hasPass = 1;
        $user->save();

它给了我 - 类stdClass的对象无法转换为字符串

我猜是2个问题,如何为foreach中的每条记录设置标记和/或是否有更好的方法来应对整个挑战?

谢谢!

这是我用来解决这个问题的2个小时......

$password = str_random(8);
        DB::table('temp_passwords')->insert([
            'tempPass' => $password,
            'hash' => Hash::make($password)
            ]);

然后......

            $user = Customer::where('hasPass', 0)->first();
        $password = TempPassword::where('custId', '=', '')->first();

        $user['hasPass'] = 1;
        $user->save();

        $password->custId = $user['id'];
        $password->save();

对于可能需要做同样事情的人。

0 个答案:

没有答案