簡體   English   中英

Laravel 屬性 [title] 在 Eloquent 構建器實例中不存在

[英]Laravel Property [title] does not exist on the Eloquent builder instance

我在嘗試顯示數據庫中的數據時遇到錯誤。這個問題是由在本網站上創建帖子的其他人發生的。 但他們有一個 foreach 循環而我沒有。 所以針對這個問題給出的所有答案都不起作用。

物品控制器

public function showwereld($id)
{
    $artikels = Artikel::where('id', $id);
    return view('pages.show')->with('artikels', $artikels);
}

show.blade.php

<div class="row">
    <div class="artikeltitel marginauto">
        <div class="col-md-6 offset-md-3">
            <h2>{{$artikels->title}}</h2>
            <p style="font-weight: bold;">{{$artikels->intro}}</p>              
            <p>{{$artikels->body}}</p>
        </div>
    </div>
</div>

在此處輸入圖片說明

這在控制器上

public function index()
{
    $artikel =  Artikel::where('category_id', '1')->first();
    return view('pages.wereld',compact('artikel'));
}

鑒於:

<div class="row">
    <div class="artikeltitel marginauto">
        <div class="col-md-6 offset-md-3">
            <h2>{{$artikel->title}}</h2>
            <p style="font-weight: bold;">{{$artikel->intro}}</p>              
            <p>{{$artikel->body}}</p>
        </div>
    </div>
</div>

我認為你錯過了 get() $artikels = Artikel::where('id', $id) ->get();

熱切加載關系(這將工作只是理解這一點)

使用 Eloquent 時,DataTables 支持對預先加載的關系進行搜索和排序。 此示例將向您展示如何使用 Eloquent 引擎設置預先加載搜索。

為了啟用搜索,我們需要使用 Laravel 的User::with('posts') api 預先加載我們打算使用的關系。

use DataTables;

Route::get('user-data', function() {
$model = App\User::with('posts');

return DataTables::eloquent($model)
            ->addColumn('posts', function (User $user) {
                return $user->posts->map(function($post) {
                    return str_limit($post->title, 30, '...');
                })->implode('<br>');
            })
            ->toJson();
});

要觸發對帖子關系的搜索,我們需要在我們的javascript 中適當地指定relation.column_name作為name屬性。

<script>
$(document).ready(function() {
    $('#users-table').DataTable({
        processing: true,
        serverSide: true,
        ajax: '{{ url("collection/basic-object-data") }}',
        columns: [
            {data: 'id', name: 'id'},
            {data: 'name', name: 'name'},
            {data: 'email', name: 'email'},
            {data: 'posts', name: 'posts.title'},
            {data: 'created_at', name: 'created_at'},
            {data: 'updated_at', name: 'updated_at'}
        ]
    });
});
</script>

查看{data: 'posts', name: 'posts.title'},:

數據:posts表示我們將要在我們的表上顯示的數據鍵(data.posts) name: posts.title表示用戶模型關系 ( posts ) 和我們要執行搜索的列 ( title )。

或者基本上試試這個:

$artikel = Artikel::find($id);
return view(pages.wereld, ['artikel' => $artikel]);

在視圖中使用這個:

    {{ $artikel->name }}

在您的代碼中:您打電話是為了獲取記錄,但試圖使用復數形式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM