【问题标题】:laravel 5 how to pass data to controller to modellaravel 5 如何将数据传递给控制器​​进行建模
【发布时间】:2018-09-21 18:38:24
【问题描述】:

我是 Laravel 5 和学习的新手。现在我已经创建了登录表单,我想检查用户是否有效(匹配表中的用户)并采取一些措施。

现在我正在从controller (AdminLoginController.php) 获取所有表单数据。现在我不知道如何传递给模型以检查用户是否存在。

查看(login.blade.php)

//I have used this form action {{ URL::to('administrator/userAuthentication') }}

<form name="frmLogin" action="{{ URL::to('administrator/userAuthentication') }}" method="post">
    <input name="_token" type="hidden" value="{{ csrf_token() }}"/>
    <div class="form-group has-feedback">
        <input type="text" name="username" id="username"class="form-control" placeholder="Username">
        <span class="glyphicon glyphicon-envelope form-control-feedback"></span>
    </div>
    <div class="form-group has-feedback">
        <input type="password" name="password" id="password" class="form-control" placeholder="Password">
        <span class="glyphicon glyphicon-lock form-control-feedback"></span>
    </div>
    <div class="row">
        <?php /*<div class="col-xs-8">
            <div class="checkbox icheck">
                <label>
                    <input type="checkbox"> Remember Me
                </label>
            </div>
        </div><!-- /.col -->*/ ?>
        <div class="col-xs-4">
            <button type="submit" class="btn btn-primary btn-block btn-flat">Login</button>
        </div><!-- /.col -->
    </div>
</form>

控制器(AdminLoginController.php)

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;

class AdminLoginController extends Controller
{
    /**
     * Handle an authentication attempt for admin user.
     *
     * @return Response
     */
    public function userAuthentication(Request $request)
    {
        echo "<pre>";
            return $request;
        echo "</pre>";
    }
}

模型(AdminLoginModel.php)

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class AdminLoginModel extends Model
{

    public function checkAuthentication()
    {
        // code
    }

}

我不知道我做得对还是不需要你的建议。

谢谢。

【问题讨论】:

    标签: php laravel laravel-5 eloquent


    【解决方案1】:

    您可以简单地将参数传递给您的模型。在您的控制器中:

    <?php
    
    namespace App\Http\Controllers;
    
    use Illuminate\Http\Request;
    
    use App\Http\Requests;
    use App\Http\Controllers\Controller;
    
    use App\AdminLoginModel;
    
    class AdminLoginController extends Controller
    {
        /**
         * Handle an authentication attempt for admin user.
         *
         * @return Response
         */
        public function userAuthentication(Request $request)
        {
            $admin_model = new AdminLoginModel();
            $admin_model->checkAuthentication($request);
        }
    }
    

    在您的模型中:

    <?php
    
    namespace App;
    
    use Illuminate\Database\Eloquent\Model;
    
    class AdminLoginModel extends Model
    {
    
        public function checkAuthentication($request)
        {
            // Do something with $request
            $request->input('username');
        }
    
    }
    

    【讨论】:

    • 但正如 Pedram marandi 建议的那样,请查看文档:laravel.com/docs/5.1/authentication。首先,文档似乎令人不知所措,但请查看 basicsservices 中的身份验证
    • 谢谢,我会检查 laravel 文档,但你能告诉我我的编码风格是否适合 laravel?
    • 是的,我认为这是正确的! :)
    【解决方案2】:

    您好,欢迎来到 Laravel,

    不用担心在模型和控制器之间传递数据,因此 laravel 的视图具有出色的 MVC 设计,因此您只需要把它做好。

    你真的很棒,但最好从 laravel Documents 开始学习 laravel,你的代码不符合 laravel 标准和签名,例如创建这样的模型。

    laravel 有很棒的Authentication 服务。 首先,您必须了解控制器、模型、Eloquent、请求以及在这种情况下的身份验证服务。

    例如,您必须为用户创建通用模型,然后检查管理员权限:

    <?php
    
    namespace App;
    
    use Illuminate\Database\Eloquent\Model;
    
    class User extends Model
    {
    
    }
    

    【讨论】:

    • 这不是 OP 问题的答案,只是您告诉 OP 去其他地方寻找答案。
    • 我建议使用 laravel 文档 :) 问题太新了,所以首先需要学习文档。 @dinsdale
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-12
    • 2017-03-07
    • 1970-01-01
    • 2016-11-26
    • 1970-01-01
    • 2015-10-19
    • 2015-01-23
    相关资源
    最近更新 更多