无法删除Laravel 5中的记录

时间:2016-10-07 12:48:36

标签: php laravel laravel-5

我在删除包含文件的记录方面遇到了麻烦。以下是代码。

删除文件方法:

private function deletePDF(Journal $journal) {
        $exist = Storage::disk('file')->exists($journal->file);

        if (isset($journal->file) && $exist) {
            $delete = Storage::disk('file')->delete($journal->file);
            if ($delete) {
                return true;
            }
            return false;
        }
    }

破坏方法:

public function destroy(Journal $journal, EditionRequest $request) {
    $this->deletePDF($journal);
    $journal->delete();

    return redirect()->route('edition', ['id' => $request->id]);
}

结果游戏什么都没有,它只是返回记录所属的页面而不删除记录。我使用相同的代码用于具有相同laravel版本的另一个项目并且它正在工作,但由于某些原因它在这里不起作用而且我有点困惑。

更新:

版本请求:

public function rules() {
        // Cek apakah CREATE atau UPDATE
        $id = $this->get('id');
        if ($this->method() == 'PATCH') {
            $volume_rules = 'required|integer|unique_with:edition,number,' . $id;
            $number_rules = 'required|integer';
        } else {
            $volume_rules = 'required|integer|unique_with:edition,number';
            $number_rules = 'required|integer';
        }
        return [
            'volume' => $volume_rules,
            'number' => $number_rules,
            'cover' => 'sometimes|image|max:15000|mimes:jpeg,jpg,bmp,png',
        ];
    }

1 个答案:

答案 0 :(得分:0)

如果它返回到与之前相同的页面,您的请求中可能会出现验证错误!

您可以通过在视图中添加以下代码段来轻松检查错误:

@if(count($errors) > 0)
    <ul>
        @foreach($errors->all() as $error)
            <li>{{$error}}</li>
        @endforeach
    </ul>
@endif

有了这个,你应该能够看到出了什么问题。让我知道它是否有效:)

修改

public function rules() {
        // Cek apakah CREATE atau UPDATE
        $id = $this->get('id');
        if ($this->method() == 'PATCH') {
            $volume_rules = 'required|integer|unique_with:edition,number,' . $id;
            $number_rules = 'required|integer';
        }  

        else if($this->method() == 'DELETE'){
             //your delete validation rules rules
             $volume_rules = ''
             $number_rules= '';              
        } 

        else {
            $volume_rules = 'required|integer|unique_with:edition,number';
            $number_rules = 'required|integer';
        }
        return [
            'volume' => $volume_rules,
            'number' => $number_rules,
            'cover' => 'sometimes|image|max:15000|mimes:jpeg,jpg,bmp,png',
        ];
    }

您甚至可能不想使用您现在使用的请求,这会给您:

public function destroy(Journal $journal, Request $request)