استاد گرامی، سلام و وقت بخیر
در درس "آموزش رایگان laravel (لاراول) پروژه محور"، ویدیوی قسمت 32 با عنوان "دریافت اطلاعات از دیتابیس" در کنترلرِ PostController با کدهای زیر:
<?php
namespace App\Http\Controllers;
use Illuminate\Container\Attributes\DB;
use Illuminate\Http\Request;
class PostController extends Controller {
public function index() {
$posts = DB::table('posts')->get();
dd('Test...');
}
}
در لاین مربوط به
$posts = DB::table('posts')->get();
زیر "table" ارور میده تحت عنوان Undefiled method 'table' و وقتی رفتم توی کلاس DB دیدم که درسته و فقط کلاسش هست، بدون هیچ متدی. کدهای کلاس DB بشرح زیر بودند:
<?php
namespace Illuminate\Container\Attributes;
use Attribute;
#[Attribute(Attribute::TARGET_PARAMETER)]
class DB extends Database
{
//
}
بنابراین متدی بنام DB::table در کنترلرِ PostController اجرا نمیشه.
با اجرای آدرسِ http://localhost:8000/posts هم ارور مربوط به خود لاراول میاد که در ابتدا نوشته:
Call to undefined method Illuminate\Container\Attributes\DB::table()
چطور میشه این مشکل رو رفع کرد؟
Javanparast
ممنونم استاد عزیز. پاسختون کاملاً درست بود.
فقط نمیدونم چطور این namespace بصورت اشتباه اینجا وارد شد. چون من اکستنشن PHP Namespace Resolver رو نصب کردم و use کردنِ namespace رو با Ctrl+Shit+i انجام میدم!!!
در هر صورت تشکر میکنم از پاسختون
و همچنین از دورههای خوبتون بسیار بسیار بسیار بسیار بسیار ممنوم.
علی شیخ
3 هفته پیش
سلام وقت بخیر.
ممنون از شما و محبتتون
برای کلاس DB چند namespace وجود داره و شما زمانیکه شورت کات هم میزنید میگه از کدوم namespace اضافه بشه