【问题标题】:Laravel project hosting error in heroku using postgreSQL使用 postgreSQL 在 Heroku 中的 Laravel 项目托管错误
【发布时间】:2020-01-11 18:09:42
【问题描述】:

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

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

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

我在 localhost 上搜索的结果

我在 Heroku 上搜索的结果

我在控制器中的过滤方法。

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>

【问题讨论】:

  • "whereDate('flight_schedule', 'like', '%' . $request->flightDepart . '%')" 你到底想用这条线实现什么?不应该是 whereDate('flight_schedule', '=',$request->flightDepart) 或类似的东西吗?
  • 这是我过滤的语法,先生。

标签: mysql laravel postgresql heroku


【解决方案1】:

我强烈建议您在开发和生产中使用相同的数据库。 MySQL 和 PostgreSQL 不能互相替代。

要么

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

【讨论】:

  • 如果我使用 ClearDB,它需要我付费。也许这位先生的解决方案是找到一个支持mysq的免费托管?我说的对吗?
  • @Vince,是的,要么选择免费提供商,要么付费。 ClearDB 和 JawsDB 都有免费层,但它相当有限,所以这对您来说可能还不够。 Amazon RDS 支持 MySQL,its free tier 更慷慨。当然还有其他选择。
猜你喜欢
  • 2017-05-15
  • 2020-08-23
  • 2018-07-11
  • 1970-01-01
  • 2021-04-08
  • 2015-03-13
  • 1970-01-01
  • 2014-05-17
  • 1970-01-01
相关资源
最近更新 更多