如何在Laravel 5.4中修复此FatalErrorException调用到成员函数diffForHumans()的字符串上?
使用函数“ diffForHumans()”时显示错误。
总体来说,没有这个,一切都会好起来的。
控制器代码:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Auth;
use DB;
Use App\Model\Books;
use App\Model\ClassLevel;
class BookController extends Controller{
public function showBooks()
{
$books = DB::table('books as b')
->join('classes as c', 'b.class_ref_id', '=', 'c.id')
->join('users as u', 'b.created_by', '=', 'u.id')
->select('u.fullname', 'c.engclassname', 'b.book_name','b.created_at','b.updated_at','b.id')
->get();
return view('admin.book.view-book',compact('books'));
}
查看页面代码:
@foreach($books as $d)
<tr>
<td>{{$d->created_at->diffForHumans()}}</td>
</tr>
@endforeach
答案 0 :(得分:0)
我假设created_at将是日期,但是它是一个字符串(“ stringOfCharacters” ...,除非您已制成对象:)来调试try:
var_dump($ d)-应显示其对象或数组。 您使用$ d ['created_at]访问数组 如果其对象使用$ d-> created_at
或您的created_at字段
您也可以尝试将对象强制转换为数组,以便...
$ arrayOfObj =(数组)$ d;
var_dump($ d ['created_at'])
如果它不是一个对象,而是一个字符串,那么(或多或少)显然将无法工作,因为字符串没有方法/功能:)
答案 1 :(得分:0)
您要返回的视图是一个通用集合,为了使用它,它必须是ORM的表示形式。 (与此相关的ORM集合)
return Books::join('classes', 'books.class_ref_id', 'classes.id')
->join('users', 'books.created_by','users.id')
->select('users.fullname', 'classes.engclassname', 'books.book_name','books.created_at','books.updated_at','books.id')
->get();
这将输出包含您所需信息的Book集合。