dongye9228 2019-07-18 05:20
浏览 433

路由问题:Laravel 5.8中不存在类控制器

I am creating a profile section. And show.blade.php is the profile edit part.

But I cannot see show.blade.php.

I got a following error.

error image

Here is my code.

web.php

Route::resource('channels', 'ChannelController');

php artisan route:list in terminal. And this is the result. php artisan route:list

app.blade.php once I click here I can jump to show.blade.php

<a class="dropdown-item" href="{{ route('channels.show', auth()->user()->channel->id) }}"> My Channel</a>

controller.php

<?php

namespace Laratube\Http\Controllers;

use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;

class Controller extends BaseController
{
    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
}

ChannelController.php

    <?php

namespace Laratube\Http\Controllers;

use Illuminate\Http\Request;

class ChannelController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show(Channel $channel)
    {
        return view('channels.show', compact('channel'));
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
}

show.blade.php

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8">
            <div class="card">
                <div class="card-header">
                    {{ $channel->name }}
                </div>

                <div class="card-body">
                    <form id="update-channel-form" action="{{ route('channels.update', $channel->id) }}" method="POST" enctype="multipart/form-data">
                        @csrf

                        @method('PATCh')
                        <div class="form-group">   
                            <label for="name" class="form-control-label">
                                Name
                            </label>
                            <input id="name" name="name" value="{{ $channel->name }}" type="text" class="form-control">
                        </div>
                        <div class="form-group">
                            <label for="description" class="form-control-label">
                                Description
                            </label>
                            <textarea name="description" id="description" cols="3" rows="3" class="form-control">
                                {{ $channel->description }}
                            </textarea>
                        </div>

                        <button class="btn btn-info" type="submit">Update</button>

                    </form>

                </div>
            </div>
        </div>
    </div>
</div>
@endsection

I tried following things.

    php artisan cache:clear

    composer update

    composer dump-autoload

    php artisan db:seed

But still it doesn't work.

I am glad if someone helps me out.

I guess, I have something wrong with my route. This route also did not work.

Route::resource('channels', 'ChannelController')->name('channels.show');
  • 写回答

3条回答 默认 最新

  • dt97868 2019-07-18 05:29
    关注

    My guess (without your controller code) is that you didn't import the model Channel. The message is quite clear, it tries to retrieve the model class from it's current directory: Laratube\Http\Controllers\.

    评论

报告相同问题?

悬赏问题

  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作