Laravel“没有调用模型时没有模型[App \ Schedule]的查询结果”错误

时间:2017-10-07 01:11:00

标签: php laravel-5.4

我有一个令人困惑的问题,我似乎无法弄清楚。我正在尝试从按钮加载网页,但它会不断弹出错误No query results for model [App\Schedule]。我不知道为什么会这样做,因为在尝试加载网页时我无法访问该模型。以下是我到目前为止(这是一项正在进行的工作)

这是链接:

<a class="btn btn-primary" role="button" href="/schedule/availability">Set Availability</a>

这是路线:

Route::get('/schedule/availability', 'ScheduleController@getAvailabilityCalendar');

这是ScheduleController内部的方法:

 public function getAvailabilityCalendar(){
        $dt = Carbon::now('America/Los_Angeles');
        $return['DayOfWeek'] = $dt->dayOfWeek;
        $return['DisplayDays'] = (($dt->daysInMonth + $return['DayOfWeek'] + 1) <= 35) ? 34:41;



        return view('contractors.availability', compact('return'));
    }

以下是返回的视图:

   <div class="table-responsive">
<table class="table">
    <thead>
    <tr>
        <th>Sunday </th>
        <th>Monday </th>
        <th>Tuesday </th>
        <th>Wednesday </th>
        <th>Thursday </th>
        <th>Friday </th>
        <th>Saturday </th>
    </tr>
    </thead>
    <tbody>
    <tr>
        @for ($i = 0, $j=-$return['DayOfWeek']; $i <= $return['DisplayDays']; $i++, $j++)

            @if($i < $return['DayOfWeek'])
                <td></td>
            @else
                @if($i %7 == 0)
    </tr><tr>
        @endif
        @if($j < 30)
            <td>{{\Carbon\Carbon::now('America/Los_Angeles')->addDays($i-$return['DayOfWeek']+1)->format('F jS')}}
                <hr>
                <div class="form-group">
                    <label data-toggle="popover" data-trigger="hover" data-content="Add Times available in the following format: 10:00am-4:00pm. You may also add multiple blocks of time separated by comma. Example: 10:00am-12:00pm, 2:00pm-4:00pm">Available Time</label>
                    <input type="text" class="form-control availability" />
                </div>
                <div class="checkbox">
                    <label>
                        <input type="checkbox" class="all-day-check" />All Day</label>
                </div>
            </td>


        @else
            <td></td>
        @endif
        @endif
        @endfor

    </tr>
    </tbody>
</table>
</div>

    <script>
        $(document).on('change', '.all-day-check', function(){
            if (this.checked) {
                $(this).closest("input.availability").prop("disabled", true);

            }else{
                $(this).closest("input.availability").prop("disabled", false);
            }
        });

    </script>

我无法找到需要引用App \ Schedule模型的任何地方,这是我项目中的模型。我完全不知道它可能是什么,或者为什么它试图运行我从未要求它运行的东西。

编辑:路由文件中也没有/schedule/availability的其他实例,我进行了三次检查。

更新:这是ScheduleController的构造函数:

public function __construct()
  {
      $this->middleware('auth'); //Check is user is logged in
  }

这是我收到的堆栈跟踪(出于某种原因,它没有显示在我的错误日志中,因此我只有屏幕截图)

enter image description here

1 个答案:

答案 0 :(得分:0)

正如上面评论中的讨论所示。罪魁祸首缩小到相互冲突的路线。

 Route:something('/schedule', ...)

之前被发现

 Route::get('/schedule/availability', 'ScheduleController@getAvailabilityCalendar');

并且Route:something在所需路线之前触发。应该注意的是,首先定义的路线将是第一个服务的路线。这就是为什么Route:resource应该放在您的自定义Route:get或其他路线之后以避免混淆的原因。

更改路线时列表中的下一项但未更新,alwasy触发php artisan route:clear。它将清除路由缓存 - 可以检查文档。