加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

php – 使用Laravel更新嵌套数组

发布时间:2020-12-14 19:39:04 所属栏目:大数据 来源:网络整理
导读:首先抱歉,我只在php中开发了一个月,我不知道如何用laravel更新它 我想更新多张照片. 照片有标题说明等. 我的问题是我不知道该怎么做. 我尝试了以下内容 public function update(Request $request,Photo $photo){ // loop through array of id's foreach ($re
首先抱歉,我只在php中开发了一个月,我不知道如何用laravel更新它

我想更新多张照片.

照片有标题说明等.

我的问题是我不知道该怎么做.

我尝试了以下内容

public function update(Request $request,Photo $photo)
{
    // loop through array of id's
    foreach ($request->photo_id as $id)
    {
        // find 
        $photos = $photo->find($id);
        // loop throug input fields
        foreach ($request->except('_token','tags','photo_id') as $key => $value)
        {
            $photos->$key = $value;
            $photos->save();
        }
    }
    die();
}

我收到以下错误

preg_replace(): Parameter mismatch,pattern is a string while replacement is an array

所以我发现问题在于价值

结果是这样的

关键变量

string(5) "title"
string(10) "country_id"
string(7) "city_id"
string(11) "category_id"
string(9) "cruise_id"
string(12) "itinerary_id"
string(4) "desc"
string(6) "people"
string(5) "title"
string(10) "country_id"
string(7) "city_id"
string(11) "category_id"
string(9) "cruise_id"
string(12) "itinerary_id"
string(4) "desc"
string(6) "people"

值变量结果

array(2) {
  [0]=>
  string(9) "title one"
  [1]=>
  string(9) "title two"
}
array(2) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "1"
}
array(2) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "1"
}
array(2) {
  [0]=>
  string(0) ""
  [1]=>
  string(0) ""
}
array(2) {
  [0]=>
  string(1) "1"
  [1]=>
  string(0) ""
}
array(2) {
  [0]=>
  string(1) "1"
  [1]=>
  string(0) ""
}

我尝试了其他几次尝试但没有任何效果

可以请有人帮我解决这个问题吗?

解决方法

在不了解更多关于什么传递给您请求对象的情况下,我无法真正了解具体细节,但您可能希望让您的请求对象看起来像这样:

'photos' => [
    {
        'id' => 1,'title' => 'title one',// more properties ....
    },{
        'id' => 2,'title' => 'title two',]

然后尝试这样的事情:

public function update(Request $request)
{
    // Loop through the request photo id's
    $request->photos->each(function($photo) use ($request) {
       // Return the photo object you want to update
       $photo = Photo::find($photo->id);

       // Get the things you want from the request and update the object
       $photo->title= $request[$photo_id]->title;

       // Save the object
       $photo->save();
    })
}

您也可以尝试使用dd();函数而不是die();.它使调试变得更容易.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读