试图获取非对象的属性“image_url”(视图:/app/resources/views/library.blade.php)

极限编码

当我部署到谷歌云时,我的代码不断返回错误,但这在本地有效

试图获取非对象的属性“image_url”(视图:/app/resources/views/library.blade.php)

在我看来,我有

              @forelse($favorites as $fav)
                    <div class="col-6 col-md-3">
                      <a href="{{ route('book', $fav->id) }}">
                      <img src="{{ $fav->book->image_url }}" alt="trending image" />
                      </a>
                      <p class="authorone">{{ $fav->book->author->name }}</p>
                      <h1 class="book-title">{{ $fav->book->name }}</h1>
                      @empty
                      <h2>You have no favourites</h2>
                      <br/><br/>
                      <a href="{{ route('discover') }}" class="return-button">Return To Discover</a>
                  </div>
               @endforelse

这是我的控制器

public function mylibrary(){
   // $mybooks = MyBook::where('user_id', Auth::id())->get();
    $favorites = Favorite::where('user_id', Auth::id())->get();
    return view('library')->with('favorites', $favorites);

 }

在我的Favorite Model, 我有这个

public function book ()
{
    return $this->belongsTo(Book::class);
}

public function user()
{
    return $this->belongsTo(User::class);
}

在我的Book Model, 我有这个

public function favorites()
{
    return $this->hasMany(Favorite::class);
}

在我的User Model, 我有这个

public function favorites(){
    return $this->hasMany(Favorite::class);
}

我的最爱表

public function up()
{
    Schema::create('favorites', function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->integer('book_id')->unsigned();
        $table->integer('user_id')->unsigned();
        $table->timestamps();
    });
}

我不知道当我部署到谷歌云时它不起作用,但它在本地工作。我似乎无法弄清楚我做错了什么。

我也试过这个

public function mylibrary(Book $book){
   // $mybooks = MyBook::where('user_id', Auth::id())->get();
    $favorites = Favorite::where('user_id', Auth::id())->get();
    return view('library')->with('favorites', $favorites)->with('book', $book);

 }

我的图书架构

Schema::create('books', function (Blueprint $table) {
    $table->bigIncrements('id');
    $table->string('name');
    $table->text('about');
    $table->string('image');  
    $table->string('image_url');
    $table->string('epub_url');
    $table->integer('author_id'); 
    $table->string('publisher');  
    $table->year('year');
    $table->boolean('recommended')->default(0);
    $table->timestamps();    
});
糊状穆西

查询时,您可以使用 with 方法指定应预先加载哪些关系:Blockquote

public function mylibrary() {
    $data = User::with('favorites', 'favorites.book')->find(Auth::id());
    return view('library')->with('userFavorites', $data);
}

您可以使用Null Coalescing Operator ??检查链式语句中的null。(在 PHP 7 中引入):

//...
<img src="{{ $fav->book->image_url ?? '' }}" alt="trending image" />
//...

编辑

@forelse($userFavorites->favorites as $fav)
     <div class="col-6 col-md-3">
         <a href="{{ route('book', $fav->id) }}">
            <img src="{{ $fav->book->image_url ?? '' }}" alt="trending image"/> 
         </a>
         <p class="authorone">{{ $fav->book->author->name ?? '' }}</p>
         <h1 class="book-title">{{ $fav->book->name ?? '' }}</h1>
@empty
         <h2>You have no favourites</h2>
         <br/><br/>
         <a href="{{ route('discover') }}" class="return-button">Return To Discover</a>
     </div>
@endforelse

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

试图获取非对象的属性“名称”(视图:(...)资源/视图/产品/index.blade.php)

Laravel: ErrorException (E_ERROR) 试图获取非对象的属性(视图:..../show.blade.php)

试图获取非对象的属性“ cover_image”(视图:C:\ Users \ BWB \ Documents \ Laravel \ asperablogs \ resources \ views \ blogs \ blogs.blade.php)

试图获取非对象的属性“id”(视图:/home/alex/Desktop/laravel/cms/resources/views/posts/index.blade.php)

试图获取非对象的属性“名称”(视图:C:\xampp1\newlibri\resources\views\book.blade.php)

试图获取非对象的属性“标题”(视图:/Applications/MAMP/htdocs/LARAVEL/LaravelDesdeCero/laravel/resources/views/portfolio.blade.php)

试图获取非对象的属性“名称”(视图:C:\xampp\htdocs\COMPLIANCE-FAQ\resources\views\respones\show.blade.php)

laravel 错误:试图获取非对象的属性 (\show.blade.php)

Laravel 错误:试图在 show.blade.php 中获取非对象的属性

Laravel-5.8:试图获取非对象的属性“display_name”(视图:D:\xampp\htdocs\MyProject\resources\views\pages\index.blade.php)

试图获取非对象的属性“ id”。我正在尝试在我的app.blade.php中进行自动通知

尝试获取非对象的属性“ id”(视图:C:\ xampp \ htdocs \ project \ resources \ views \ keuangan \ hasil.blade.php)

尝试获取非对象的属性“标题”(视图:C:\ xampp \ htdocs \ lsapp \ resources \ views \ posts \ show.blade.php)

我正在尝试在我的blade.php 文件中显示数据库中的数据,但出现此错误“试图获取非对象的属性‘名称’”

php注意:试图获取非对象的属性

试图获取非对象的属性 - PHP

PHP PDO试图获取非对象的属性

PHP注意:试图获取非对象的属性

PHP Mysql试图获取非对象的属性

CURL PHP试图获取非对象的属性

“试图获取非对象的属性”错误PHP

PHP错误“试图获取非对象的属性”

PHP 注意 试图获取非对象的属性

从表blade.php 获取ID 到其他blade.php 错误Symfony\Component\Routing\Exception\RouteNotFoundException

isset($ var)-BLADE与原始php

Blade 指令上的 PHP 函数

Laravel:在视图中获取当前路由命名空间(form.blade.php)

试图获取非对象错误的属性PHP curl

试图获取非对象 Laravel php 5.8 的属性“cname”