【问题标题】:Laravel 5.5 - Cant Set/Get data from sqlserver 2008R2 (always return 500)Laravel 5.5 - 无法从 sql server 2008R2 设置/获取数据(总是返回 500)
【发布时间】:2017-10-24 03:43:24
【问题描述】:

我的 laravel 和 sqlserver 有问题。最近 php pod 没有问题,因为我在我的 yii2 项目上使用了这个 sqlserver,它运行良好。

try {
    DB::connection()->getPdo();
    if(DB::connection()->getDatabaseName()){
        echo "Yes! Successfully connected to the DB: " . DB::connection()->getDatabaseName();
    }
} catch (\Exception $e) {
    die("Could not connect to the database.  Please check your configuration.");
}

我也尝试过连接数据库,它返回“是!成功连接到数据库:MyDB”。

这是我的控制器

public function postsignup(Request $request){
        $this->validate($request, [
            'username' =>'required',
            'email' =>'required',
            'password' =>'required',
        ]);
        try{
            $users = new User;
            $users->id = '15';
            $users->username = $request->input('username');
            $users->password_hash = bcrypt($request->input('password'));
            $users->email = $request->input('email');
            $users->save();
            return redirect('/')->with('response','register success');
        }
        catch(\PDOException $e){
            echo $e->getMessage();
        }
    }

我的模特

 public $timestamps = false;
    protected $fillable = [
        'username', 'email', 'password_hash',
    ];
    protected $hidden = [
        'password', 'remember_token',
    ];

这是我的看法

@extends('layouts.app')

@section('content')
    <div class="container">
        <div class="row">

            @if(session('response'))
                <div class="col-md-8 alert alert-success">
                    {{session('success')}}
                </div>
            @endif


            <div class="col-md-8 col-md-offset-2">
                <div class="panel panel-default">
                    <div class="panel-heading">Register</div>

                    <div class="panel-body">
                        <form class="form-horizontal" method="post" action="{{route('account-create-post')}}">
                            {{ csrf_field() }}

                            <div class="form-group{{ $errors->has('name') ? ' has-error' : '' }}">
                                <label for="name" class="col-md-4 control-label">Name</label>

                                <div class="col-md-6">
                                    <input id="name" type="text" class="form-control" name="username"
                                           value="{{ old('name') }}" required autofocus>

                                    @if ($errors->has('name'))
                                        <span class="help-block">
                                        <strong>{{ $errors->first('name') }}</strong>
                                    </span>
                                    @endif
                                </div>
                            </div>

                            <div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}">
                                <label for="email" class="col-md-4 control-label">E-Mail Address</label>

                                <div class="col-md-6">
                                    <input id="email" type="email" class="form-control" name="email"
                                           value="{{ old('email') }}" required>

                                    @if ($errors->has('email'))
                                        <span class="help-block">
                                        <strong>{{ $errors->first('email') }}</strong>
                                    </span>
                                    @endif
                                </div>
                            </div>

                            <div class="form-group{{ $errors->has('password') ? ' has-error' : '' }}">
                                <label for="password" class="col-md-4 control-label">Password</label>

                                <div class="col-md-6">
                                    <input id="password" type="password" class="form-control" name="password" required>

                                    @if ($errors->has('password'))
                                        <span class="help-block">
                                        <strong>{{ $errors->first('password') }}</strong>
                                    </span>
                                    @endif
                                </div>
                            </div>

                            <div class="form-group">
                                <label for="password-confirm" class="col-md-4 control-label">Confirm Password</label>

                                <div class="col-md-6">
                                    <input id="password-confirm" type="password" class="form-control"
                                           name="password_confirmation" required>
                                </div>
                            </div>

                            <div class="form-group">
                                <div class="col-md-6 col-md-offset-4">
                                    <button type="submit" class="btn btn-primary">
                                        Register
                                    </button>
                                </div>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </div>
    </div>
@endsection

我的路线

Route::post('/signup', array(
    'as' => 'account-create-post',
    'uses' => 'UserController@postsignup'
));

Route::get('/signup', array(
    'as' => 'account-create',
    'uses' => 'UserController@getsignup'
));

此代码用于我的注册。首先,用户填写注册输入字段,然后点击注册按钮将他们的数据保存到数据库,但我知道我与数据库的连接有问题,因为如果我评论 $users->save()不会出现此 500 错误> 。我还尝试使用 $users = User::all(); 从数据库中检索数据,并出现此 500 错误。 我希望有人遇到过这个错误并帮助我解决这个错误,这样我就可以继续我的工作。仅供参考,我已经在各处进行了调试,所以我想我的代码还可以。

【问题讨论】:

  • 如果您收到 500 错误,那么将有其原因以及日志条目。请检查您的日志以了解确切的错误是什么。
  • 日志中没有记录错误,因为它的 500 (cmiiw) ,这就是为什么我很难解决这个问题。仅供参考,这是我的第一个 laravel 项目,请告诉我是否需要特殊配置才能使用 sqlserver 配置 laravel。
  • 你迁移你的架构了吗?
  • 对于用户表?
  • 你是否检查了你的 web 服务器的日志,而不是 Laravel 日志。

标签: php sql-server laravel sql-server-2008-r2 laravel-5.5


【解决方案1】:

3 天后我终于知道为什么这 500 出来了。我最近尝试使用错误处理检查数据库连接并返回成功消息,但是当我尝试从数据库迁移模式时,我的 cmd 停止响应,我意识到 config/database.php 中的 db conf 有问题

'sqlsrv' => [
    'driver' => 'sqlsrv',
    'host' => 'my_IP',
    'port' => 'my_Port',
    'database' => 'DbName',
    'username' => 'Db_Username',
    'password' => 'Db_Password',
    'charset' => 'utf8',
    'prefix' => 'pos.',
],

问题很简单-_-,前缀包含“.”。我删除它,一切正常。嗯尴尬的时刻,感谢@madalinivascu 为您快速回复+1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-12
    • 2021-07-30
    • 1970-01-01
    • 2019-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-19
    相关资源
    最近更新 更多