数组到字符串转换错误,如何使用 laravel 存储表单中的数据

Posted

技术标签:

【中文标题】数组到字符串转换错误,如何使用 laravel 存储表单中的数据【英文标题】:Array to string conversion error, how to store data from a form using laravel 【发布时间】:2021-07-26 08:31:00 【问题描述】:

表格帖子和功能之间的多对多关系

后控制器

public function create()

    $features = Feature::all();
    return view('form', compact('features'));



public function store(Request $request)

    $post = Post::create($request->except(['features']));
    $post->features()->sync($request->feature);

HTML

<div class="row">
    @foreach($features as $feature)
    <div class="col-6 col-md-3 mt-2 ">
            <div class="form-check form-check-inline mr-4 pr-4">
                <input class="form-check-input" type="checkbox" id="$feature" name="feature[]" value="$feature->id">
                <label class="form-check-label" for="$feature">$feature->feature</label>
            </div>
    </div>
    @endforeach
</div>

FeatureSeeder

 public function run()

    Feature::create(['feature'=>'Backup Camera']);
    Feature::create(['feature'=>'Cruise Control']);
    Feature::create(['feature'=>'Power Steering']);
    Feature::create(['feature'=>'Hands-Free']);
    Feature::create(['feature'=>'Heated Seats']);
    Feature::create(['feature'=>'Keyless-Entry']);
    Feature::create(['feature'=>'Sunroof']);

如果问题格式不正确或需要任何信息,请随时发表评论, **提前致谢**

【问题讨论】:

您知道代码中的哪个部分产生了错误吗? 我认为是,数据类型错误或! @aceraven777 您在哪里看到错误?当你点击保存按钮时? 是的@aceraven777 【参考方案1】:

尝试从 PostController 中移除 compact():

public function create()

    $features = Feature::all();
    return view('form', ['features' => $features]);

【讨论】:

我不能有其他要传递的数据,任何其他选项【参考方案2】:

我认为你的错误在于:

<input class="form-check-input" type="checkbox" id="$feature" name="feature[]" value="$feature->id">
 <label class="form-check-label" for="$feature">$feature->feature</label>

请试试这个:

<input class="form-check-input" type="checkbox" id="$feature->id" name="feature[]" value="$feature->id">
 <label class="form-check-label" for="$feature->id">$feature->feature</label>

【讨论】:

以上是关于数组到字符串转换错误,如何使用 laravel 存储表单中的数据的主要内容,如果未能解决你的问题,请参考以下文章

尝试使用 AJAX 在 Laravel 中上传单个文件时出现数组到字符串转换错误

“数组到字符串的转换”错误 Laravel - 尝试将数组保存到数据库

laravel - ErrorException 数组到字符串的转换

laravel 4验证器错误数组到字符串转换

Laravel 雄辩的 all() 方法给出错误“数组到字符串的转换”[关闭]

在 Laravel 中使用“LIKE”查询将数组转换为字符串