Postingan lainnya
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.
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->deleted_at == '') <li> <a href="/blog/{{$blog->id}}"> {{ $blog->title }} </a> <form action="/blog/{{$blog->id}}" method="post"> <input type="submit" name="submit" value="delete"> {{csrf_field()}} <input type="hidden" name="_method" value="DELETE"> </form> </li> @endif @endforeach </pre>
Sumber = linkhttps://github.com/invoiceninja/invoiceninja/issues/1767[/link]