雄辩的生成器实例上不存在Laravel属性[title]

时间:2019-02-27 13:08:01

标签: php laravel laravel-blade

尝试显示数据库中的数据时出现错误。此问题由在此网站上创建帖子的其他人发生。但是它们有一个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>

enter image description here

4 个答案:

答案 0 :(得分:2)

此在控制器上

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>

答案 1 :(得分:2)

我认为您缺少get() $ artikels = Artikel :: where('id',$ id)-> get();

答案 2 :(得分:0)

或基本上尝试一下:

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

在视图上使用此:

{{ $artikel->name }}

在您的代码上:您正在调用以获取记录,但尝试使用复数形式。

答案 3 :(得分:0)

更早的加载关系(只需了解这一点即可)

DataTables支持在使用Eloquent时搜索和排序急切的加载关系。此示例将向您展示如何使用Eloquent Engine设置急切的加载搜索。

要启用搜索,我们需要使用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();
});

要触发对 帖子 关系的搜索,我们需要将 relation.column_name 指定为 javascript 中适当地添加> 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'},

数据:帖子 代表我们将在其上显示的数据键 (data.posts) 我们的桌子。 名称:posts.title 代表用户模型关系( posts )和我们将要执行的列搜索( 标题 )。