Laravel 6.x Backpack NewsCrud 插件

Laravel 6.x Backpack NewsCrud Plugin

我想做的是允许管理面板使用 newscrud post 新闻。我对如何从数据库中获取信息并向用户展示文章感到困惑。

我在使用 laravel 的 newscrud 插件时遇到问题。我完全不明白如何使用这个插件。我已经使用作曲家安装了它。所有控制器、模型等都在我的 Laravel 项目的 vendor 文件夹中。

尝试次数: 我试图做的是在 laravel-project/vendor/backpack/newscrud/src/app/Http/Controllers/Admin/ArticleCrudController.php 文件:

public function index()
{
    # Pass the article database information in articles var
    $articles = Articles::all();

    # Return this variable to blog page
    return view ('blog')->with('articles', $articles);
}

并且在 routes/web.php 文件中:

Route::get('/blog', 'ArticleCrudController@index')->name('blog');

前端代码

                      @foreach($articles as $article)

                          <div class="col-md-12 d-flex ftco-animate">

                            <div class="blog-entry align-self-stretch d-md-flex">

                              <a href="blog-single.html" class="block-20" style="background-image: url('images/image_6.jpg');">

                              </a>

                              <div class="text d-block pl-md-4">

                                <div class="meta mb-3">

                                  <div><a href="#">July 20, 2019</a></div>

                                  <div><a href="#">Admin</a></div>

                                  <div><a href="#" class="meta-chat"><span class="icon-chat"></span> 3</a></div>

                                </div>

                                <h3 class="heading"><a href="#">Even the all-powerful Pointing has no control about the blind texts</a></h3>

                                <p>Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts.</p>

                                <p><a href="blog-single.html" class="btn btn-primary py-2 px-3">Read more</a></p>

                              </div>

                            </div>

                          </div>

                    @endforeach    

错误 我收到的错误消息是:

Target class [App\Http\Controllers\ArticleCrudController] does not exist. 

如果你需要information/screenshots我愿意提供

错误信息

App\Http\Controllers\ArticleCrudController

显示 Laravel 无法解析 PHP 命名空间 App\Http\Controllers 中的控制器。

我刚刚查看了库的代码,我建议你替换

Route::get('/blog', 'ArticleCrudController@index')->name('blog');

来自

Route::get('/blog', 'Backpack\NewsCRUD\app\Http\Controllers\Admin\ArticleCrudController@index')->name('blog');

尝试像这样编辑您的 web.php:

Route::group([
    'prefix' => '/',
    'middleware' => ['web'],
    // This is all the namespace in directory
    'namespace' => 'laravel-project\vendor\backpack\newscrud\src\app\Http\Controllers\Admin',
], function () {
    Route::get('/blog', 'ArticleCrudController@index')->name('blog');
});

并将您的 ArticleCrudController.php 文件编辑为:

namespace laravel-project\vendor\backpack\newscrud\src\app\Http\Controllers\Admin;

希望这对您有所帮助:)

在 PHP 中使用 Composer 时,切勿修改 /vendor/ 文件夹中的文件。因为一旦您 运行 作曲家更新,它们就会被覆盖。

如果我没理解错的话,你想做的事情和Backpack没什么关系。您不应覆盖供应商文件夹中的包。你应该在你的应用程序文件夹中创建一个控制器,在你的路由文件夹中创建一个路由,你通常会在 Laravel 中这样做。只需确保在引用模型时引用 Backpack\NewsCRUD\app\Models\Article 而不是 App\Models\Article.

希望对您有所帮助!