mysql - 使用 postgreSQL 在 Heroku 中托管 Laravel 项目时出现错误

标签 mysql laravel postgresql heroku

我正在 laravel 中预订航类,并将其发布到 Heroku 上。我在开发时使用MySQL作为数据库,但是当我想在Heroku上发布时,他们没有MySQL,所以我使用了PostgreSQL。我观看了一些有关如何使用该数据库托管它的视频。

完成后,我可以在托管站点中执行 CRUD,但是当我要过滤航类时刻表时,它给了我一个错误。但是当我在本地主机中进行搜索时,它没有任何错误。

我认为这个错误出现在我使用的 PostgreSQL 中。我该如何解决这个问题?

我在本地主机上搜索时的结果 The result when I search

我在 Heroku 上搜索的结果 enter image description here

我在 Controller 中的过滤方法。

FlightsController.php

 public function searchFlights(Request $request){
        $flights =  Flights::where('flight_country_from', 'like', '%' . $request->flightFrom . '%')
            ->where('flight_country_from', 'like', '%' . $request->flightFrom . '%')
            ->where('flight_country_to', 'like', '%' . $request->flightTo . '%')
            ->whereDate('flight_schedule', 'like', '%' . $request->flightDepart . '%')
            ->paginate(5);

            return view('airways.flightresult', compact('flights'));

    }

我的搜索表单

Search.blade.php

    <div class="tab-pane fade" id="flights" role="tabpanel" aria-labelledby="flights-tab">
          <h2 class="text-4 mb-3">Book Domestic and International Flights</h2>
          <form method="GET"  autocomplete="off" id="bookingFlight" action="{{url("/flightSearch")}}">
          {{ csrf_field() }}
          <div class="form-row">
             <div class="col-md-8 col-lg-3 form-group">
                <input class="form-control" type="text" name="flightFrom" id="flightFrom"  placeholder="From">
                <span class="icon-inside"><i class="fas fa-map-marker-alt"></i></span>
             </div>
             <div class="col-md-8 col-lg-3 form-group">
                <input class="form-control" type="text"  name="flightTo" id="flightTo"  placeholder="To">
                <span class="icon-inside"><i class="fas fa-map-marker-alt"></i></span>
             </div>
             <div class="col-md-8 col-lg-3 form-group">
                <input class="form-control" name="flightDepart"  id="flightDepart" required required placeholder="Departure Date">
                <span class="icon-inside"><i class="far fa-calendar-alt"></i></span>
             </div>
             <div class="col-md-12 form-group">
                <button class="btn btn-primary btn-block" type="submit">Search</button>
             </div>
          </div>
          </form>
       </div>
    </div>

最佳答案

我强烈建议您在开发和生产中使用相同的数据库。 MySQL 和 PostgreSQL 并不是彼此的直接替代品。

要么

  • 切换到本地 Postgres,重现错误并修复它,或者
  • 使用受支持的 MySQL add-on就像生产中的 ClearDB 或 JawsDB。

关于mysql - 使用 postgreSQL 在 Heroku 中托管 Laravel 项目时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57863093/

相关文章:

php - mysql,其中链接表为 null 或不等于某个 id

php - 拥有基于特定设计的庞大数据库(用于性能测试)

php - artisan 队列:work and artisan horizon:work?有什么区别

mysql - 如何提高 ORDER BY ... LIMIT ... 查询性能?

mysql - 我的多边形是否正确插入到数据库中?

laravel - 如何修复 'Unchecked runtime.lastError: The message port closed before a response was received' chrome 问题?

mysql - 使用 Laravel 将图片存储到 mysql

python - 用百万条记录更新表上的记录

sql - Postgres 10 sql 如何在没有所有列的情况下进行区分

C# with Npgsql - 无法使用处理程序类型 Int32Handler 编写 CLR 类型 System.String