首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel在不调用model时出现"No query result for model [App\Schedule]“错误

Laravel在不调用model时出现"No query result for model [App\Schedule]“错误
EN

Stack Overflow用户
提问于 2017-10-07 09:11:00
回答 1查看 76关注 0票数 0

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

链接如下:

代码语言:javascript
运行
复制
<a class="btn btn-primary" role="button" href="/schedule/availability">Set Availability</a>

以下是路由:

代码语言:javascript
运行
复制
Route::get('/schedule/availability', 'ScheduleController@getAvailabilityCalendar');

下面是ScheduleController内部的方法:

代码语言:javascript
运行
复制
 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'));
    }

下面是返回的视图:

代码语言:javascript
运行
复制
   <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的构造函数:

代码语言:javascript
运行
复制
public function __construct()
  {
      $this->middleware('auth'); //Check is user is logged in
  }

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

EN

Stack Overflow用户

发布于 2017-10-07 10:20:49

正如在上面的评论中讨论的那样。罪魁祸首被缩小到一条冲突的路线。

代码语言:javascript
运行
复制
 Route:something('/schedule', ...)

之前被发现过

代码语言:javascript
运行
复制
 Route::get('/schedule/availability', 'ScheduleController@getAvailabilityCalendar');

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

列表中的下一项当更改路由但未更新时,通常会触发php artisan route:clear。它将清除路由缓存-可以在文档中签入。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46615744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档