Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Laravel中创建新的管理员用户_Php_Laravel - Fatal编程技术网

Php 在Laravel中创建新的管理员用户

Php 在Laravel中创建新的管理员用户,php,laravel,Php,Laravel,在我的Laravel应用程序中,我有可以登录和注册的用户,以及可以登录但出于安全原因无法注册的管理员 我正在利用Laravels内置的Auth功能,这样我就可以处理登录和密码重置,只需添加一个提供商和App\Admin 我试图用一个只有其他管理员用户才能访问的表单创建新管理员,但我确实很难让流程正常工作: 以下是我的AdminController中的方法 public function store(StoreAdmin $request) { $admin = new Admin();

在我的Laravel应用程序中,我有可以登录和注册的
用户
,以及可以登录但出于安全原因无法注册的
管理员

我正在利用Laravels内置的
Auth
功能,这样我就可以处理登录和密码重置,只需添加一个提供商和
App\Admin

我试图用一个只有其他管理员用户才能访问的表单创建新管理员,但我确实很难让流程正常工作:

以下是我的
AdminController
中的方法

public function store(StoreAdmin $request)
{
    $admin = new Admin();

    $admin->first_name = $request->input('first_name');
    $admin->last_name = $request->input('last_name');
    $admin->email = $request->input('email');
    $admin->password = bcrypt(str_random(60));
    $admin->access_level = $request->input('access_level');

    $admin->save();

    Mail::send(new AdminWelcome($admin));

    return redirect()->route('admin.index');
}
这将添加一个新的管理员,该管理员提供通过
$request
变量传递的凭据,并提供一个随机密码作为开始。它还会触发一封电子邮件,发送到新创建用户的电子邮件

这是我用来向电子邮件传递数据的
邮件类:

<?php

namespace App\Mail;

use App\Admin;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Password;

class AdminWelcome extends Mailable
{
    use Queueable, SerializesModels;

    /**
     * Undocumented variable
     *
     * @var [type]
     */
    public $admin;

    /**
     * Undocumented variable
     *
     * @var [type]
     */
    public $token;

    /**
     * @param \App\Models\Admin $user
     */
    public function __construct(Admin $admin)
    {
        $this->admin = $admin;

        $this->token = Password::getRepository()->create($admin);
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this
            ->to($this->admin->email)
            ->subject('Welcome to ' . config('app.name'))
            ->view('emails.admin.welcome');
    }
}

令牌不会添加到URL,也不会添加到
密码\u resets
表中。我是不是忘了一些显而易见的东西?

您使用的是什么版本的Laravel?版本5.7,这会有什么不同吗?
@extends('layouts.app')

@section('content')
<h1>Welcome to <a href="{{ config('app.url') }}">{{ config('app.name') }}</a></h1>
<p>
    Dear {{ $admin->first_name }},
</p>
<p>
    Your account has been approved. You can now pick a password at our site and login.
</p>
<table>
    <tr>
        <td>
            <p>
                <a href="password/reset" . {{ $token }} class="btn-primary">
                    Pick a password
                </a>
            </p>
        </td>
    </tr>
</table>

<p><em>This link is valid until {{
        Carbon\Carbon::now()->addMinutes(config('auth.passwords.users.expire'))->format('Y/m/d') }}.</em></p>
@endsection