محمد معین بابائی
4 سال پیش توسط محمد معین بابائی مطرح شد
12 پاسخ

چرا کنترلر رو نشون نمیده- لاراول 8

توضیح تصویر رو وارد کنید

سلام دوستان به یه مشکلی خوردم در لاراول 8
من با cmd کنترلر خودمو ساختم و کد های لازم رو زدم (همین کد ها در لاراول 7 کار می کنه) اما این ارور میده(تصویر بالا)
و اینکه اگه فایل ایجاد شده برای کنترلر ها رو دستی پاک کنیم مشکل داره؟!! یا باید چجوری کنترلر ها رو پاک کنیم
@hesammousavi
@nimageneral
@mhyeganeh
@milad
@endworld
@hosseinshirinegad98


ثبت پرسش جدید
فرید وطنی
تخصص : Software Developer
@faridvatani 4 سال پیش مطرح شد
4

سلام دوست عزیز
یکی از تغییراتی که در لاراول ۸ صورت گرفته، نحوه فراخوانی توابع action در کنترلر هاست. در نسخه های قبل تر لاراول فراخوانی توابع action به شکل زیر انجام می‌شد:

Route::get(‘/users’, ‘UserController@index’);

اما در نسخه ٨ فراخوانی توابع action به شکل زیر انجام می‌شود:

use App\Http\Controllers\UserController;
Route::get('/users', [UserController::class, 'index']);

اگر روش قبلی موجود در ورژن های قبلی لاراول را ترجیح می‌دهید، می‌توانید $nameSpace را به عنوان یک متغیر کلاسی در RouteServiceProvider اضافه کنید و اینطور که از ارور تون پیداست احتمالا فایل کنترلر Home رو حذف کردید و در routing پروژه تون نمیتونه کنترلرشو پیدا کنه که باید ویرایشش کنید.


سبحان دادخواه
تخصص : دانشجوی برنامه نویسی :)
@SobhanDadkhah 4 سال پیش مطرح شد
0

@moeinbabaei
سلام.
خیر مشکلی نداره دستی پاک کنید.
برا ارور هم نحوه فراخوانی هاتون رو باید مشخص کنید . ارور مربوط به ioc container هست. در واقع کلاسی هست که لاراول به هر دلیل نتونسته بصورت اتوماتیک ازش آبجکت بسازه ( معمولا این مشکل از آدرس دهی ها پیش میاد ). باید کدتون رو قرار بدید که بشه راهنمایی کرد.


فرید وطنی
تخصص : Software Developer
@faridvatani 4 سال پیش مطرح شد
4

سلام دوست عزیز
یکی از تغییراتی که در لاراول ۸ صورت گرفته، نحوه فراخوانی توابع action در کنترلر هاست. در نسخه های قبل تر لاراول فراخوانی توابع action به شکل زیر انجام می‌شد:

Route::get(‘/users’, ‘UserController@index’);

اما در نسخه ٨ فراخوانی توابع action به شکل زیر انجام می‌شود:

use App\Http\Controllers\UserController;
Route::get('/users', [UserController::class, 'index']);

اگر روش قبلی موجود در ورژن های قبلی لاراول را ترجیح می‌دهید، می‌توانید $nameSpace را به عنوان یک متغیر کلاسی در RouteServiceProvider اضافه کنید و اینطور که از ارور تون پیداست احتمالا فایل کنترلر Home رو حذف کردید و در routing پروژه تون نمیتونه کنترلرشو پیدا کنه که باید ویرایشش کنید.


رایموند
تخصص : مختصص وردپرس - برنامه نویس لار...
@Raymond 4 سال پیش آپدیت شد
0

درود...
توی کنترلر HomeController.php تابع این شکل تعریف شده:

public function index()
{
    return view('home');
}

بخواهید home در صفحه رندر و مشاهده بشه باید فایل مورد نظر home.blade.php در پوشه views وجود داشته باشه و همچون روت برای آن تعریف شده باشه:

Route::get('/', [HomeController::class, 'index'])->name('home');

محمد معین بابائی
تخصص : Web developer
@moeinbabaei 4 سال پیش مطرح شد
1

خیلی ممنون از دوستان عزیز مشکلم حل شد دمتون گرم بله درست گفتین تو لاراول 8 فرق می کنه با 7
@SobhanDadkhah
@faridvatani
@endworld


محمد معین بابائی
تخصص : Web developer
@moeinbabaei 4 سال پیش مطرح شد
-2

دوستان کسی می تونه این کد رو تبدیل کنه به کدی که با لاراول 8 هم خونی داشته باشه (این کد برای لاراول 7 هستش)

Route::prefix('admin')->namespace('Admin')->group(function() {
    Route::get('/articles' , 'ArticleController@index');
    Route::get('/articles/create' , 'ArticleController@create');
    Route::post('/articles/create','ArticleController@store');
    Route::get('/articles/{id}/edit' , 'ArticleController@edit');
    Route::put('/articles/{id}/edit' , 'ArticleController@update');
    Route::delete('/articles/{id}' , 'ArticleController@delete');

});

@SobhanDadkhah
@faridvatani
@endworld
@hesammousavi
@nimageneral


نیما - ش
تخصص : برنامه نویس وب
@nimageneral 4 سال پیش مطرح شد
0

شما کافیه که تمام ساب روت هاتون رو بصورت زیر تغییر بدید

Route::get('/articles' , [ArticleController::class, 'index']);

محمد معین بابائی
تخصص : Web developer
@moeinbabaei 4 سال پیش مطرح شد
0

@nimageneral
نیما جان اینو دوستان گفتن من منظورم اینه چه شکلی تو تابع بزاریم و گروپ کنیم شون


نیما - ش
تخصص : برنامه نویس وب
@nimageneral 4 سال پیش مطرح شد
0

فکر کنم مظور شما resource Controller باشه که کلا بحثش جداست و شما باید یک کنترلر از نوع resource ایجاد کنید بصورت زیر که تمام ساب روت ها رو خودش ایجاد میکنه

php artisan make:controller PhotoController --resource

فرزاد بنده علی
@545seta5dareh 3 سال پیش مطرح شد
0

سلام دوستان هنگام رفتن به صفحه post با خطای زیر مواجه می شمتوضیح تصویر رو وارد کنید

کد زیر مربوط به صفحه PostController هست

<?php

namespace App\Http\Controllers;

use App\Models\Post;

class PostController extends Controller
{
    public function show($slug)
    {
        $post=Post::query()->where('slug',$slug);
        return view('post',[
                'post'=>'$post'
            ]);
    }
}

کد زیر هم مربوط به صفحه post هست

<div class="sn-content">
                        <h1 class="sn-title">{{$post->title}}</h1>
                       {{$post->body}}
                    </div>

ممنون میشم راهنمایی کنید


محمدحسن فرهادی
تخصص : علاقه مند به کد نویسی
@farhadi 3 سال پیش مطرح شد
0

@nimageneral نحوه روت دادن به فایل ریسورس هم تغییر کرده تو لاراول 8؟


afshin
تخصص : فول استک دولوپر
@afshin 3 سال پیش مطرح شد
0

تا میایم به یه چیزی عادت کنیم خرابش میکنن


محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 3 سال پیش مطرح شد
0

@545seta5dareh
مشکل مربوط میشه به خط ۱۱ کنترلرتون.
این رو:

$post=Post::query()->where('slug',$slug);

تبدیل کنید به این:

$post=Post::query()->where('slug',$slug)->first();

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام