LavaLite / cms

Multilingual PHP CMS built with Laravel and bootstrap

Home Page:https://lavalite.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Litecms error on blog pages

melaniecarr23 opened this issue · comments

When I go to 127.0.0.1:8000/blog I get the following error after following the documentation on install:
Too few arguments to function Litecms\Blog\Http\Controllers\BlogPublicController::show(), 1 passed in /Users/melaniecarr/WebDevelopment/thehigheryougo/vendor/laravel/framework/src/Illuminate/Routing/Controller.php on line 54 and exactly 2 expected

When I go to 127.0.0.1:8000/blog/index, I get the following error:
Attempt to read property "name" on null

Just getting my feet wet here, so maybe I'm missing something.

Updating this: when I go to /blogs, I get the following error:
'Call to undefined method Illuminate\Database\Eloquent\Builder::withQueryString()'
Looks like packages/litecms/blog/src/Http/Controllers/BlogPublicController.php:51 doesn't like that. What am I missing? What can I do to make this work?

could you please drop the controller code of packages/litecms/blog/src/Http/Controllers/BlogPublicController.php

error on new installation

Too few arguments to function Litecms\Blog\Http\Controllers\BlogPublicController::show(), 1 passed in /var/www/cmstisfe/vendor/laravel/framework/src/Illuminate/Routing/Controller.php on line 54 and exactly 2 expected

BlogPublicController
`namespace Litecms\Blog\Http\Controllers;

use App\Http\Controllers\PublicController as BaseController;
use App\Http\Requests\PublicRequest;
use Litecms\Blog\Interfaces\BlogRepositoryInterface;
use Litecms\Blog\Interfaces\CategoryRepositoryInterface;
use Litecms\Blog\Interfaces\TagRepositoryInterface;
use Litecms\Blog\Repositories\Eloquent\Filters\BlogPublicFilter;
use Litecms\Blog\Repositories\Eloquent\Presenters\BlogListPresenter;
use Litepie\Repository\Filter\RequestFilter;

class BlogPublicController extends BaseController
{

/**
 * Constructor.
 *
 * @return void
 */
public function __construct(
    BlogRepositoryInterface $blog,
    CategoryRepositoryInterface $category,
    TagRepositoryInterface $tag
) {
    parent::__construct();
    $this->modules = $this->modules(config('litecms.blog.modules'), 'blog', guard_url('blog'));
    $this->repository = $blog;
    $this->category = $category;
    $this->tag = $tag;

}

/**
 * Show blog's list.
 *
 * @return response
 */
protected function index(PublicRequest $request)
{

    $search = $request->search;
    $pageLimit = $request->input('pageLimit', config('database.pagination.limit'));
    $data = $this->repository
        ->pushFilter(RequestFilter::class)
        ->pushFilter(BlogPublicFilter::class)
        ->setPresenter(BlogListPresenter::class)
        ->select('blogs.*')
        ->paginate($pageLimit)
        ->withQueryString()
        ->appends([
            'dd' => 'dd',
        ])
        ->toArray();

    extract($data);

    $categories = $this->category->categories()->toArray();
    $tags = $this->tag->tags()->toArray();
    $recent = $this->repository->recent(2)->toArray();

    return $this->response->setMetaTitle(trans('blog::blog.names'))
        ->view('blog::public.blog.index')
        ->data(compact('data', 'meta', 'categories', 'tags', 'recent'))
        ->output();
}

/**
 * Show blog.
 *
 * @param string $slug
 *
 * @return response
 */
protected function show(PublicRequest $request, $slug)
{
    $data = $this->repository
        ->findBySlug($slug)
        ->toArray();

    $categories = $this->category->categories()->toArray();
    $tags = $this->tag->tags()->toArray();
    $recent = $this->repository->recent(2)->toArray();

    return $this->response->setMetaTitle($data['title'] . trans('blog::blog.name'))
        ->view('blog::public.blog.show')
        ->data(compact('data', 'categories', 'tags', 'recent'))
        ->output();
}

}
`

I have change
/litecms/blog/src/Repositories/Eloquent/Presenters/BlogItemPresenter.php line 38
'author' => @$this->author->name
It working for me .
@melaniecarr23