我使用的是Laravel5.3,我的php版本是7.1
当我调用SoftDeletes类时,我得到了那个错误
Builder.php第1231行中的ErrorException:count():参数必须是实现可计数的数组或对象
这是我的模型
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Post extends Model
{
use SoftDeletes;
protected $dates = ['deleted_at'];
protected $fillable = [
'title','content','image','category_id','slug'
];
public function category(){
return $this->belongsTo('App\Category');
}
}
这是我的控制器
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Post;
use App\Category;
use Session;
class PostsController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
return view('admin.posts.index')->with('posts',Post::all());
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
$category = Category::all();
if($category->count() == 0){
Session::flash('info' , 'You must create at least 1 category to add a new post');
return redirect()->back();
}
return view('admin.posts.post')->with('categories',$category);
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$this->validate($request,[
'title' => 'required|max:255',
'image' => 'required|image',
'content' => 'required',
'category_id' => 'required'
]);
$image = $request->image;
$image_new_name = time().$image->getClientOriginalName();
$image->move('/uploads/posts' , $image_new_name);
$post= Post::create([
'title' => $request->title,
'image' => '/uploads/posts/' . $image_new_name,
'content' => $request->content,
'category_id' => $request->category_id,
'slug' => str_slug($request->title)
]);
Session::flash('success' , 'You created a new post');
return redirect()->back();
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}
当我删除count()函数时,也会得到相同的错误
如何解决此错误
我有相同的问题laravel发现()
方法返回一个对象,而不是数组。因此,count()
方法将不起作用。尝试:Stackoverflow解决方案或
Post::all()->toArray();
将返回一个数组,该数组将与count()
方法一起工作。
我更改了C:\laragon\www\mystore\vendor\laravel\framework\src\illumb\Database\elount中的第1231行
到
$originalWhereCount = !empty($query->wheres) ? count($query->wheres) : 0;
Laravel 5.3和我的PHP版本is 7.1互不兼容请参阅github中的此问题
为了解决这个错误,你可以做两件事
我在PHPmyadmin中有一些奇怪的错误。 ./libraries/pmd_common.php#405 count()中的警告:参数必须是实现可计数的数组或对象 回溯 ./db_designer.php#102:PMA_getLoadingPage(字符串'db_Name') 如何修复它?
警告:count():参数必须是一个数组或一个对象,它在invTranslate_translated_menu_link_alter()中实现了Countable()(第55行来自\站点\所有\模块\自定义\invTranslate\invTranslate.module)。 invTranslate.module是一个自定义模块。 第55行是:
我想选择最佳查找结果。我得到了一个错误:在这里,我在下面的文件中显示了HTML表单操作和DB连接,请检查它。错误消息也提到了这一部分。我使用的是PHP7.2,但遇到了一些问题 警告:count():参数必须是在第64行的D:\xammp\htdocs\search\index.php中实现 可计数的数组或对象 警告:在第37行的D:\xammp\htdocs\search\index.php中使用
我面临着奇怪的案子。我在生产环境中面临一个错误,而在开发中它工作正常。 开发: Laravel 5.4.28 PHP 7.0.13 MYSQL 5.7.17 制作:Laravel 5.4.28 PHP 7.2.1 MYSQL 5.7.20 在实现代码中。我用过: 在开发中,它运行良好。但是在生产中,它给我这个错误:Count():参数必须是一个数组或一个在Builder.php中实现可数的对象(第
我有这个代码返回一个错误: 参数必须是实现可数的数组或对象?
我正在处理symfony,收到了这个消息 参数必须是实现可数的数组或对象 此消息仅针对PHP7.2.14显示,不针对PHP7.1.26。 我想在服务器上应用的解决方案,就像这一个phpmyAdmin。 我知道有一些解决方案涉及像这样更改代码。 但我想要一个解决方案,是所有页面,所以在服务器端。 提前谢谢!