【问题标题】:laravel 7 article argument not passed title in articles viewlaravel 7文章参数未在文章视图中传递标题
【发布时间】:2020-05-14 18:27:37
【问题描述】:

我正在尝试制作一个网站页面,但我无法在视图中传递参数文章

我的控制器是:

 public function single(Article $article)
    {
        $article->increment('viewCount');
        $comments = $article->comments()->where('approved' , 1)->where('parent_id', 0)->latest()->with(['comments' => function($query) {$query->where('approved' , 1)->latest();}])->get();
        return view('Home.articles.single' , compact('article' , 'comments'));
    }

我的看法是

<div class="subject_head">
    <div class="subject_head--title"><h1 class="title">
        {{$article->title}}
        </h1>
    </div>
</div>

但我不能通过文章标题。我的模型是

 protected $table='articles';
    protected $casts= [
        'images'=>'array'
    ];
    protected $fillable= ['title','slug','description','body','images','tags'];
public function comments()
    {
        return $this->morphMany(Comment::class, 'commentable');
    }
    public function user()
    {
        return $this->belongsTo(User::class);
    }

我通过了这个并且在使用时

$article->all()

这传递了所有数据

但是在使用时

 $article->title

此方法为空 以及使用时

dd($article)

【问题讨论】:

  • 您确定您传递给 View 的 $article 对象不为空吗?
  • 我传递了这个并且使用 $article->all() 这个传递了所有数据但是当使用 $article->title 这个方法是 null
  • $article-&gt;all() 然后你需要循环遍历它,因为它变成了一个数组,或者只是为了测试就像$article[0]-&gt;title 一样检查它
  • 当我使用循环时。此循环给出所有文章,但我想使用单页文章我使用 $article[0]->title 试图获取非对象的属性“标题”.....文章未通过!!!
  • 你在哪里应用了$article-&gt;all() 内部控制器?

标签: laravel laravel-5 laravel-6 laravel-7


【解决方案1】:

它已经改变了。

现在你需要将它作为数组传递 ['name' => 'James']

你的情况

public function single(Article $article)
{
    $article->increment('viewCount');
    $comments = $article->comments()->where('approved' , 1)->where('parent_id', 0)->latest()->with(['comments' => function($query) {$query->where('approved' , 1)->latest();}])->get();
    return view('Home.articles.single' ,['article'=>$article,'comments'=$comments]));
}

在这里查看:https://laravel.com/docs/7.x/views

【讨论】:

  • compact() 方法仍然有效@flakerimi,谁告诉你它已经改变了。
【解决方案2】:

我改变了路线

Route::get('/articles/{articleSlug}' , 'ArticleController@single');
Route::get('/series/{courseSlug}' , 'CourseController@single');

Route::get('/articles/{article:Slug}' , 'ArticleController@single');
Route::get('/series/{course:Slug}' , 'CourseController@single');

并解决了问题。

谢谢大家。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-21
    • 2022-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-19
    • 2018-11-17
    相关资源
    最近更新 更多