首页 文章

laravel 5如何将数据传递给控制器进行建模

提问于
浏览
2

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

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

view(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>

controller(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>";
    }
}

model(AdminLoginModel.php)

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class AdminLoginModel extends Model
{

    public function checkAuthentication()
    {
        // code
    }

}

我不知道我做得对不对,所以需要你的建议 .

谢谢 .

2 回答

  • 6

    您只需将参数传递给模型即可 . 在你的控制器中:

    <?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');
        }
    
    }
    
  • -2

    您好,欢迎来到Laravel,

    不要担心模型和控制器之间传递数据,因此laravel视图具有出色的MVC设计,所以只需要正确操作即可 .

    你真的很好,但最好从laravel开始学习laravel Documents你的代码超出了laravel标准和签名,例如创建这样的模型 .

    laravel很棒Authentication服务 . 首先,您必须了解控制器,模型,Eloquent,请求以及此示例中的身份验证服务 .

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

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

相关问题