Php 方法App\Http\Controllers\SkillController::show不存在。-拉威尔5.7

Php 方法App\Http\Controllers\SkillController::show不存在。-拉威尔5.7,php,laravel,laravel-5,laravel-5.7,Php,Laravel,Laravel 5,Laravel 5.7,当我试图在我的项目中创造一项技能时,我总是会遇到这个错误 方法App\Http\Controllers\SkillController::show不存在 我不需要show()方法,因为我不需要技能对象的show视图 这是我的路障看起来像 //Skill Route::get('skill','SkillController@index'); Route::get('skill/create','SkillController@create'); Route::post('skill/store

当我试图在我的项目中创造一项技能时,我总是会遇到这个错误

方法App\Http\Controllers\SkillController::show不存在

我不需要show()方法,因为我不需要技能对象的show视图

这是我的路障看起来像

//Skill
Route::get('skill','SkillController@index');
Route::get('skill/create','SkillController@create');
Route::post('skill/store','SkillController@store');
Route::get('skill/{id}/edit', 'SkillController@edit');
Route::post('skill/{id}/update','SkillController@update');
Route::delete('skill/{id}/destroy','SkillController@destroy');
这是我的全部技能控制器

<?php
namespace App\Http\Controllers;

use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
use App\Skill;
use Input, View, File, Image, SSH, Redirect,Response;

class SkillController extends Controller {

    public function index(){

        $skills = Skill::orderBy('updated_at', 'desc')->orderBy('created_at', 'asc')->where('img_path','==',NULL)->get();

        $first_color  = $skills[0]->color_code;
        $second_color = $skills[1]->color_code;
        $third_color  = $skills[2]->color_code;
        $fourth_color = $skills[3]->color_code;
        $fift_color   = $skills[4]->color_code;

        return View::make('layouts.be.skills.index', get_defined_vars());
    }

    public function all(){
        return Skill::all()->pluck('name');
    }

    public function create(){

        $skillTypes = ['Build System','Development Environment','Server Management','Operating System','IDE','Creative Suite','Video Editing','Package Management','Git Repository','Web Scaffolding','CSS Precompiler','Scripting','Framework','DBMS','Unit Test','Automation Testing','Cloud Platform','Hosting Provider','Content Management', 'API', 'Authentication' , 'Integration','Language','Web Server','Project Managment','Documentation','Utility','Network Analyzer' ];

        sort($skillTypes);

        return View::make('layouts.be.skills.create', get_defined_vars());
    }

    public function edit($id){

        $skillTypes = ['Build System','Development Environment','Server Management','Operating System','IDE','Creative Suite','Video Editing','Package Management','Git Repository','Web Scaffolding','CSS Precompiler','Scripting','Framework','DBMS','Unit Test','Automation Testing','Cloud Platform','Hosting Provider','Content Management', 'API', 'Authentication' , 'Integration','Language','Web Server','Project Managment','Documentation','Utility','Network Analyzer' ];

        sort($skillTypes);

        $skill = Skill::findOrFail($id);
        return View::make('layouts.be.skills.edit', get_defined_vars());
    }

    public function store(){

        $skill             = new Skill;
        $skill->type       = Input::get('type');
        $skill->name       = Input::get('name');
        $skill->value      = Input::get('value');
        $skill->color_code = Input::get('color_code');
        $skill->save();

        if (Input::hasFile('logo_path')) {
            $image_path      = '/assets/img/skill/';
            $path            = public_path() . $image_path;
            $file            = Input::file('logo_path');
            $img_name        = $skill->id.'.png';
            $uploadSuccess   = $file->move($path, $img_name);
            $file_path       = $path . $img_name;
            $skill->img_path = $image_path . $img_name;
            $crop_file       = Image::make($file_path)->fit(20,20);
            $crop_file->save($path . 'crop-'.$img_name, 65);
        }else {
            $skill->img_path = Input::get('logo_path');
        }

        $skill->save();

        return Redirect::to('/skill') ->with('success','The skill was created succesfully!');

    }

    public function update($id){

        $inputs            = Input::all();
        $skill             = Skill::find($id);
        $skill->name       = Input::get('name');
        $skill->type       = Input::get('type');
        $skill->value      = Input::get('value');
        $skill->color_code = Input::get('color_code');

        $skill->save();

        if (Input::hasFile('logo_path')) {

            $image_path      = '/assets/img/skill/';
            $path            = public_path() . $image_path;
            $file            = Input::file('logo_path');
            $img_name        = $skill->id.'.png';
            $uploadSuccess   = $file->move($path, $img_name);
            $file_path       = $path . $img_name;
            $skill->img_path = $image_path . $img_name;
            $crop_file       = Image::make($file_path)->fit(20,20);
            $crop_file->save($path . 'crop-'.$img_name, 65);
        } else {
            $skill->img_path = Input::get('logo_path');
        }

        $skill->save();

        return Redirect::to('/skill') ->with('success','The skill was updated succesfully!');

    }

    public function destroy($id){

        $skill = Skill::find($id);
        $skill->delete();

        $image_path      = '/assets/img/skill/';
        $path            = public_path() . $image_path;
        File::deleteDirectory($path);

        return Redirect::to('/skill') ->with('success','The skill was deleted succesfully!');

    }

    public function skilldata(Request $request){
        $skill = str_replace("-"," ",$request->skill);
        $data = Skill::where(DB::raw('LOWER(type)'),'=',$skill)->get();
        return response()->json($data, 200);
    }
}

skill.create.blade.php

@extends('layouts.be.master')
@section('content')


<div class="card-body card-padding">
    <div class="row">

        {!! Form::open(array('class' => 'form-horizontal', 'role' =>'form', 'url'=>'skill/store','files' => true)) !!}


        <div class="col-sm-4">




            {{-- Name --}}
            <div class="form-group">
                <label for="email" class="col-sm-2 control-label">Name</label>
                <div class="col-sm-10">
                    <input type="text" value="{{Request::old('name')}}"  value="" name="name" class="form-control" id="name" placeholder="Name">
                </div>
            </div>

            {{-- Type --}}
            <div class="form-group">
                <label for="email" class="col-sm-2 control-label">Type</label>
                <div class="col-sm-10">
                    <select name="type" class="form-control">
                      @foreach($skillTypes as $item)
                        <option value="{{ $item }}">{{ $item }}</option>
                      @endforeach
                    </select>
                </div>
            </div>

            {{-- Value --}}
            <div class="form-group">
                <label class="col-sm-2 control-label">Value</label>
                <div class="col-sm-8">
                    <br>
                    <input type="range" id="range-value" value="93" name="value">
                </div>
                <div class="col-sm-2">
                    <h3 id="text-value"></h3>
                </div>
            </div>


            {{-- Color --}}
            <div class="form-group">
                <label for="email" class="col-sm-2 control-label">Color</label>
                <div class="col-sm-2">
                    <input type="color" name="color_code" class="form-control" placeholder="Color" id="example-color-input">

                </div>
            </div>

            <div class="form-group">
                <div class="col-sm-offset-4 col-sm-8">
                    <a class="btn btn-default" href="/skill"> Cancel </a>
                    <button type="submit" class="btn btn-info">Create</button>
                </div>
            </div>



        </div>
        <div class="col-sm-8">



            {{-- Icon --}}
            <div class="form-group">
                <label class="col-sm-2 control-label" >Icon</label>
                <div class="col-sm-10">

                    <img name="logo_path" id="skill-icon" width="300px"><br><br>

                    <input type="file" class="form-control" name="logo_path" aria-describedby="fileHelp">
                </div>


                <label class="col-sm-2 control-label" >Icon URL </label>
                <div class="col-sm-10">

                    <input id="url-logo" name="logo_path" type="text" class="form-control">

                </div>



            </div>

        </div>

        {!!Form::close()!!}


    </div>
</div>

@stop

@section('custom-scripts')

    <script type="text/javascript" src="/js/Vibrant.js"></script>

    <script type="text/javascript">

        function readLogo(input) {
            if (input.files && input.files[0]) {
                var reader = new FileReader();
                reader.onload = function (e) {
                    $('#skill-icon').attr('src', e.target.result);
                }
                reader.readAsDataURL(input.files[0]);
            }
        }

        // Update media preview with base64 image
        $( "input[name*='logo_path']" ).change(function(){
            readLogo(this);
        });

        $( "#url-logo" ).on('keyup',function(){
            $('#skill-icon').attr('src', $( "#url-logo" ).val());
        });

        $('#text-value').text($('#range-value').val());
        $('#range-value').change(function(){
            $('#text-value').text($('#range-value').val());
        });

        // Icon
        var icon = $('#skill-icon');
        icon.attr('src', $( "#url-logo" ).val());

        $( "#url-logo" ).on('keyup',function(){

            var vibrant = new Vibrant(icon[0]);
            var swatches = vibrant.swatches()
            for (var swatch in swatches)
                if (swatches.hasOwnProperty(swatch) && swatches[swatch])
                    // console.log(swatches[swatch].getHex());
                    var color = swatches[swatch].getHex();
                    $( "input[name*='color_code']" ).val(color)
                    console.log('%c >>>>>>>>>>>>>>', "color:" + String(color) + ";");
                    console.log('color',color);

                    // Vibrant #3c62ac
                    // Muted #7484ab
                    // DarkVibrant #345cab
                    // DarkMuted #101010
                    // LightVibrant #849ccc

        });


    </script>
@stop
@extends('layouts.be.master')
@节(“内容”)
{!!表单::打开(数组('class'=>'表单水平','role'=>'表单','url'=>'skill/store','files'=>true))
{{--名称--}}
名称
{{--类型--}}
类型
@foreach($skillTypes作为$item)
{{$item}}
@endforeach
{{--值--}}
价值

{{--颜色--}} 颜色 创造 {{--图标--} 偶像 函数readLogo(输入){ if(input.files&&input.files[0]){ var reader=new FileReader(); reader.onload=函数(e){ $(“#技能图标”).attr('src',e.target.result); } reader.readAsDataURL(input.files[0]); } } //使用base64映像更新媒体预览 $(“输入[name*='logo\u path'])。更改(函数(){ readLogo(本); }); $(“#url徽标”)。在('keyup',function()上{ $(“#技能图标”).attr('src',$(“#url徽标”).val(); }); $('#文本值').text($('#范围值').val()); $('#范围值')。更改(函数(){ $('#文本值').text($('#范围值').val()); }); //图标 变量图标=$(“#技能图标”); icon.attr('src',$(“#url logo”).val(); $(“#url徽标”)。在('keyup',function()上{ var vibrant=新vibrant(图标[0]); var-swatches=vibrant.swatches() 用于(样例中的变量样例) if(swatches.hasOwnProperty(swatch)和&swatches[swatch]) //log(样例[swatch].getHex()); var color=swatches[swatch].getHex(); $(“输入[name*='color\u code']”)val(颜色) console.log(“%c>>>>>>”,“颜色:”+字符串(颜色)+“;”); console.log('color',color); //充满活力的#3c62ac //静音#7484ab //暗色纤维 //黑暗的#101010 //LightVibrant#849ccc }); @停止

如果你发现我不该做的事,请告诉我

您的计算机上没有method= 这就是为什么假定Route::resource设置它将假定您正在尝试访问show方法

Form::open(array('url' => 'foo/bar', 'method' => 'POST'))

您的计算机上没有method= 这就是为什么假定Route::resource设置它将假定您正在尝试访问show方法

Form::open(array('url' => 'foo/bar', 'method' => 'POST'))

如果您已经手动编写了这样的路由

//Skill
Route::get('skill','SkillController@index');
Route::get('skill/create','SkillController@create');
Route::post('skill/store','SkillController@store');
Route::get('skill/{id}/edit', 'SkillController@edit');
Route::post('skill/{id}/update','SkillController@update');
Route::delete('skill/{id}/destroy','SkillController@destroy');
那么你不需要这个,这个代码应该在你的路线上的某个地方

Route::resource('skills','SkillController');

您可以删除skillcontroller的整个手动写入路由

换成这个

Route::resource('skills', 'SkillController', ['only'=> ['index','create','store','delete','edit','update']]);

如果您已经手动编写了这样的路由

//Skill
Route::get('skill','SkillController@index');
Route::get('skill/create','SkillController@create');
Route::post('skill/store','SkillController@store');
Route::get('skill/{id}/edit', 'SkillController@edit');
Route::post('skill/{id}/update','SkillController@update');
Route::delete('skill/{id}/destroy','SkillController@destroy');
那么你不需要这个,这个代码应该在你的路线上的某个地方

Route::resource('skills','SkillController');

您可以删除skillcontroller的整个手动写入路由

换成这个

Route::resource('skills', 'SkillController', ['only'=> ['index','create','store','delete','edit','update']]);

是的,正如我在最初的评论中所想,您尚未为表单指定操作-这应该可以解决您的问题:

{!! Form::open(array('class' => 'form-horizontal', 'role' =>'form', 'url'=>'skill/store', 'action' => 'SkillController@store' ,'files' => true)) !!}
此外,您的路线不正确-您的路线应该是:

Route::get('skill','SkillController@index');
Route::get('skill/create','SkillController@create');
Route::post('skill/store','SkillController@store');
Route::get('skill/{id}/edit', 'SkillController@edit');
Route::patch('skill/{id}/update','SkillController@update'); //this should be put or patch not post
Route::delete('skill/{id}/destroy','SkillController@destroy');

是的,正如我在最初的评论中所想,您尚未为表单指定操作-这应该可以解决您的问题:

{!! Form::open(array('class' => 'form-horizontal', 'role' =>'form', 'url'=>'skill/store', 'action' => 'SkillController@store' ,'files' => true)) !!}
此外,您的路线不正确-您的路线应该是:

Route::get('skill','SkillController@index');
Route::get('skill/create','SkillController@create');
Route::post('skill/store','SkillController@store');
Route::get('skill/{id}/edit', 'SkillController@edit');
Route::patch('skill/{id}/update','SkillController@update'); //this should be put or patch not post
Route::delete('skill/{id}/destroy','SkillController@destroy');

这只是路线订购问题

按如下方式制作路线订单:

//Skill
Route::post('skill/store','SkillController@store');
Route::get('skill','SkillController@index');
Route::get('skill/create','SkillController@create');
Route::post('skill/{id}/update','SkillController@update');
Route::delete('skill/{id}/destroy','SkillController@destroy');
Route::get('skill/{id}/edit', 'SkillController@edit');

如果要制作CRUD模块,请使用Laravel“资源控制器”路由方法

首先创建资源控制器:在终端中运行以下命令

php artisan make:controller SkillController --resource
然后在“routes/web.php”文件的下面一行

Route::resource('skill', 'SkillController');

这只是路线订购问题

按如下方式制作路线订单:

//Skill
Route::post('skill/store','SkillController@store');
Route::get('skill','SkillController@index');
Route::get('skill/create','SkillController@create');
Route::post('skill/{id}/update','SkillController@update');
Route::delete('skill/{id}/destroy','SkillController@destroy');
Route::get('skill/{id}/edit', 'SkillController@edit');

如果要制作CRUD模块,请使用Laravel“资源控制器”路由方法

首先创建资源控制器:在终端中运行以下命令

php artisan make:controller SkillController --resource
然后在“routes/web.php”文件的下面一行

Route::resource('skill', 'SkillController');

您的routes文件中是否有技能资源块?如果是这样,它需要按照您显示的路径进行操作。您是否可以从视图中发布表单,很可能存在错误,因为您的a使用get方法-或者操作不正确=“”@aynber我在我的帖子上加了:@CodeBoyCode我用我的查看代码
skill>create.blade.php
@kyo更新了我的帖子,你必须在某处注册路线。Do
artisan route:list
您的routes文件中是否有技能资源块?如果是这样,它需要按照您显示的路线进行操作。您是否可以从视图中发布表单,可能存在错误,因为它看起来像是您使用get方法发布的表单-或者有错误操作=“”@aynber我在我的帖子中添加了:@CodeBoyCode我用我的视图代码
skill>cr更新了我的帖子