Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 数组到字符串异常Laravel_Php_Arrays_Json_Laravel_Exception - Fatal编程技术网

Php 数组到字符串异常Laravel

Php 数组到字符串异常Laravel,php,arrays,json,laravel,exception,Php,Arrays,Json,Laravel,Exception,CategoryApiController.php public function posts($id){<br> $category_data = Category::find($id); $posts=$category_data->posts(); } 我正在尝试获取特定类别的帖子,该类别以JSON的形式存储在Category_id中。如果我将$this->attributes['id']替换为'3'这是一个静态

CategoryApiController.php

    public function posts($id){<br>
        $category_data = Category::find($id);        
        $posts=$category_data->posts();
}


我正在尝试获取特定类别的帖子,该类别以JSON的形式存储在Category_id中。如果我将$this->attributes['id']替换为'3'这是一个静态值,我会得到我要查找的数据,但我希望它是动态的。但是,$this->attributes['id']将成功获取ex(3)的类别id,但它不接受作为参数并返回空数组

以下是我的表格结构:


请帮帮我你有几个问题

  • 您可能忘了添加阵列投射
  • 当您添加此项时,您应该会得到如下内容:

    // Category.php
    
    protected $casts = [
         'category_ids' => 'array'
    ];
    
    
    // CategoryApiController@posts
    
    $model->update(['category_ids' => [1, 2, 3]);
    
  • 第二个问题是数据类型。 数组存储字符串并传递一个数字,因此它不起作用。 注意,在第一点中,我向您展示了如何保存整数。所以,如果保存为整数,代码将在不更改此行的情况下工作
  • Post::whereJsonContains('category_id',1)//int

    Post::whereJsonContains('category_id','1')//字符串


    e、 g.
    whereJsonContains('category_id',(string)$this->attributes['id'])
    //pass string

    大家好,欢迎光临。您可能希望重新访问您的文章,并在标记上做一些工作,因为目前由于格式和打字错误很难阅读。一篇好的帖子可能会得到比当前状态更多的答案。从我所看到的,我想知道你是怎么让它工作的?
    // Category.php
    
    protected $casts = [
         'category_ids' => 'array'
    ];
    
    
    // CategoryApiController@posts
    
    $model->update(['category_ids' => [1, 2, 3]);