Fungsi all() laravel 5.3 erorr pada tutorial di kelas perjalanan halaman 404 dan soft deletes

Link video [link](klik)https://sekolahkoding.com/kelas/belajar-laravel-53-dasar/video/halaman-404-dan-soft-deletes[/link]

BlogController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

use App\Http\Requests;
use App\Models\Blog;

class BlogController extends Controller
{
    public function index()
    {
      //insert biasa
      // $blog = new Blog;
      // $blog->title = 'halo halo kelampaian';
      // $blog->description = 'isi dari halo kelampaian';
      // $blog->save();

      // insert mass assignment
      // Blog::create([
      //   'title' => 'halo nagara2',
      //   'description' => 'isi dari halo nagara2',
      //   'created_at' => '2019-11-24 03:53:51',
      //   'updated_at' => '2019-11-24 03:53:51'
      // ]);

      // update
      // $blog = Blog::where('title', 'halo nagara')->first();
      // $blog->title = 'halo palangkaraya';
      // $blog->save();

      // update mass assignment
      // Blog::find(9)->update([
      //   'title' => 'halo citra',
      //   'description' => ' isi halo citra'
      // ]);

      // delete
      // $blog = Blog::find(1);
      // $blog->delete();

      // delete kedua
      // Blog::destroy([8, 9]);

      // soft deletes
      // $blog = Blog::find(2);
      // $blog->delete();

      // $blogs = Blog::withTrashed()->get();
      $blogs = Blog::all();
      return view('blog/home', ['blogs' => $blogs]);
    }

    public function show($id)
    {
      $blog = Blog::find($id);
      if (!$blog)
        abort(404);

      return view('blog/single', ['blog' => $blog]);
    }
}

Blog.php

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class Blog extends Model
{

    protected $dates = ['deleted_at'];

    protected $fillable = ['title', 'description']; //whitelist
    // protected $guarded  = []; // blacklist
}

tapi muncul error seperti ini ketika dijalankan

Whoops, looks like something went wrong.
1/1
ErrorException in Builder.php line 1231:
count(): Parameter must be an array or an object that implements Countable
in Builder.php line 1231
at HandleExceptions->handleError('2', 'count(): Parameter must be an array or an object that implements Countable', 'C:\xampp\htdocs\file\edukasi\sekolahkoding\perjalanan\2-belajar-laravel\belajar-laravel-5.3-dasar\laravel53\bloggy\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Builder.php', '1231', array('scope' => object(Closure), 'parameters' => array(object(Builder)), 'query' => object(Builder)))
at count(null) in Builder.php line 1231
at Builder->callScope(object(Closure)) in Builder.php line 1262
at Builder->applyScopes() in Builder.php line 325
at Builder->get(array('*')) in Model.php line 631
at Model::all() in BlogController.php line 52
at BlogController->index()
at call_user_func_array(array(object(BlogController), 'index'), array()) in Controller.php line 55
at Controller->callAction('index', array()) in ControllerDispatcher.php line 44
at ControllerDispatcher->dispatch(object(Route), object(BlogController), 'index') in Route.php line 189
at Route->runController() in Route.php line 144
at Route->run(object(Request)) in Router.php line 653
at Router->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in SubstituteBindings.php line 41
at SubstituteBindings->handle(object(Request), object(Closure)) in Pipeline.php line 137
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in VerifyCsrfToken.php line 65
at VerifyCsrfToken->handle(object(Request), object(Closure)) in Pipeline.php line 137
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in ShareErrorsFromSession.php line 49

namun ketika saya menghilangkan kode di bawah ini dengan Blog::all() datanya dapat muncul

// use SoftDeletes;

Semoga jelas dan mohon penjelasannya terima kasih.

avatar rahmatramadhan
@rahmatramadhan

26 Kontribusi 5 Poin

Dipost 4 tahun yang lalu

Tanggapan

Bisa mas hilman, namun ketika menampilkan datanya Blog::all() muncul error. Tapi ketika use SoftDeletes saya hilangkan di Blog.php, Blog::all() nya bisa di jalankan

Versi PHP: 7.3.10 bang Hilman

Terimakasih atas masukannya bang Himan. Saya menggunakan versi 5.3 untuk mengikuti sesuai tutorial. Karena jika berbeda versi ada terdapat beberapa perbedaan fungsi fungsi seperti pada authentication yang menyulitkan pembelajaran mengikuti video. Terima kasih

1 Jawaban:

Jawaban Terpilih

Ternyata laravel 5.3-5.4 tidak support dengan PHP versi 7.2 keatas. Jadi naikan versi laravelnya atau turunkan versi PHPnya. Koreksi jika salah terima kasih.

Jadi terpaksa saya akali untuk melanjutkan tutorial dengan menggunakan Blog::withTrashed(); dan di view nya saya tambahkan seperti ini

<pre> @foreach ($blogs as $blog) @if ($blog-&gt;deleted_at == '') &lt;li&gt; &lt;a href="/blog/{{$blog-&gt;id}}"&gt; {{ $blog-&gt;title }} &lt;/a&gt; &lt;form action="/blog/{{$blog-&gt;id}}" method="post"&gt; &lt;input type="submit" name="submit" value="delete"&gt; {{csrf_field()}} &lt;input type="hidden" name="_method" value="DELETE"&gt; &lt;/form&gt; &lt;/li&gt; @endif @endforeach </pre>

Sumber = linkhttps://github.com/invoiceninja/invoiceninja/issues/1767[/link]

avatar rahmatramadhan
@rahmatramadhan

26 Kontribusi 5 Poin

Dipost 4 tahun yang lalu

Login untuk ikut Jawaban