mysql - 在 laravel 中调用未定义的方法 App\Student::contains()

标签 mysql laravel laravel-5 collections laravel-collection

在我的 Blade View 中,它给我一个错误 Call to undefined method App\Student::contains()

我的 Controller

if($auth->user()->getRoleNames() == '["Parent"]'){
    $id = $auth->user()->Parents_id;
    $parent = ParentName::find($id);
    $student = $parent->students;
    $announce = AnnounceMent::get();
    $roletype='parent';
    return view('announcement.index',compact('student','roletype','announce')); 
 }

我的 View 文件

@foreach($announce as $ann)
    @if($student->contains('id', $ann->student_id))
        <tr>
            <td>{{$i}}</td>
            <td>{{$ann->announcement_type}}</td>
            <td>
                <?php $course = \App\Course::find($ann->course_id) ?>
                {{$course->course_name}}
            </td>
            <td>
            <?php $student = \App\Student::find($ann->student_id) ?>
                    {{$student['firstname'].' '.$student['lastname']}}
            </td>
            <td>{{$ann->description}}</td>
            <td>
            <a class="btn btn-success" href='{{ url("viewannounce/{$ann->id}") }}'>View</a>
            </td>
        </tr>
    @endif
@php($i++)
@endforeach

这是我的收藏,我收到 dd($students)

收藏{#595 ▼

#items: 数组:3 [▼

0 => Student {#596 }
1 => Student {#597 }
2 => Student {#598 }

] }

最佳答案

contains是一个集合方法,您正在使用非集合调用它,如果它是 App\Student::all()->contains('something')它会工作得很好,但是App\Student::find(1)->contains('something')App\Student::contains('something')不会工作

修补结果

>>> App\User::find(1)->contains('email')
BadMethodCallException with message 'Call to undefined method App/User::contains()'
>>> App\User::all()->contains('email')
=> false
>>> App\User::contains('email')
BadMethodCallException with message 'Call to undefined method App/User::contains()'
>>>

你可以做到

$student->id == $ann->student_id

我想,在你的情况下。

关于mysql - 在 laravel 中调用未定义的方法 App\Student::contains(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58179610/

相关文章:

php - 将单击事件附加到表格单元格的最佳方式是什么?

php - IIS7 服务器上的 Web 服务用于 Apache 服务器上的网站

mysql - MySQL 中 where 子句和别名的问题

php - 从mysql表中删除密码?

laravel - 无法在 View 中显示 created_at 值

Laravel 5.5 Redis 问题 - 调用未定义的方法 Illuminate\Support\Facades\Redis::connect()

mysql - GIS:PostGIS/PostgreSQL vs. MySql vs. SQL Server?

laravel - 在 Laravel 5.2 中工作的查询在 Laravel 5.3 中给我错误

sql - laravel的created_at和updated_at是相反的吗?

php - Laravel 数据库 :table for multi where AND Or condition for multiple slected field