Gần đây tôi đã di cư mô-đun của tôi để Drupal7 (trên PHP Version 5.3.1) và bây giờ tôi nhận được lỗi sau đây:array_flip(): Chỉ có thể lật giá trị STRING và INTEGER! trong DrupalDefaultEntityController-> load()
* Warning: array_flip() [function.array-flip]: Can only flip STRING and INTEGER values! in DrupalDefaultEntityController->load() (line 178 of C:\Users\akulkarni\Desktop\xampp\htdocs\servicecasting\includes\entity.inc).
* Warning: array_flip() [function.array-flip]: Can only flip STRING and INTEGER values! in DrupalDefaultEntityController->load() (line 178 of C:\Users\akulkarni\Desktop\xampp\htdocs\servicecasting\includes\entity.inc).
* Warning: array_flip() [function.array-flip]: Can only flip STRING and INTEGER values! in DrupalDefaultEntityController->load() (line 178 of C:\Users\akulkarni\Desktop\xampp\htdocs\servicecasting\includes\entity.inc).
* Warning: array_flip() [function.array-flip]: Can only flip STRING and INTEGER values! in DrupalDefaultEntityController->cacheGet() (line 354 of C:\Users\akulkarni\Desktop\xampp\htdocs\servicecasting\includes\entity.inc).
* Warning: array_flip() [function.array-flip]: Can only flip STRING and INTEGER values! in DrupalDefaultEntityController->load() (line 178 of C:\Users\akulkarni\Desktop\xampp\htdocs\servicecasting\includes\entity.inc).
* Warning: array_flip() [function.array-flip]: Can only flip STRING and INTEGER values! in DrupalDefaultEntityController->cacheGet() (line 354 of C:\Users\akulkarni\Desktop\xampp\htdocs\servicecasting\includes\entity.inc).
* Warning: array_flip() [function.array-flip]: Can only flip STRING and INTEGER values! in DrupalDefaultEntityController->load() (line 178 of C:\Users\akulkarni\Desktop\xampp\htdocs\servicecasting\includes\entity.inc).
* Warning: array_flip() [function.array-flip]: Can only flip STRING and INTEGER values! in DrupalDefaultEntityController->cacheGet() (line 354 of C:\Users\akulkarni\Desktop\xampp\htdocs\servicecasting\includes\entity.inc).
Tôi cũng đã cố gắng nâng cấp các module khác và cốt lõi để các phiên bản mới nhất như đã đề cập ở đây http://drupal.org/node/1022736
pháp nhân 7.x-1.x-dev (2011-Jan-24), lượt xem 7.x-3.x-dev (2011-Jan-22), lõi Drupal 7.x-dev (2011-Jan-24), profile2 7.x-1.0-beta1, tài liệu tham khảo 7.x-2.x-dev (2011-Jan-14), ctools 7.x-1.0- alpha2
Tôi không thể tìm ra chính xác nguyên nhân gây ra lỗi này là gì?
Edit:
Theo http://php.net/manual/en/function.array-flip.php,
array_flip() trả về một mảng theo thứ tự lật, ví dụ: các phím từ xuyên trở thành giá trị và giá trị từ khóa xuyên trở thành.
Lưu ý rằng giá trị của trans cần phải là khóa hợp lệ, tức là chúng cần phải là số nguyên hoặc chuỗi. Cảnh báo sẽ được phát ra nếu giá trị có loại sai và cặp khóa/giá trị được đề cập sẽ không bị lật .
Tôi đã làm các var_dump($ids);
trước dòng 178 trong entity.inc ($passed_ids = !empty($ids) ? array_flip($ids) : FALSE;
)
Và có vẻ với tôi rằng cặp khóa/giá trị luôn luôn là ở định dạng chính xác (?).
array
0 =>
array
'nid' => string '6' (length=1)
array
0 =>
array
'uid' => string '1' (length=1)
array
0 => string '0' (length=1)
array
0 =>
array
'nid' => string '7' (length=1)
array
0 =>
array
'nid' => string '4' (length=1)
array
0 =>
array
'nid' => string '8' (length=1)
Bạn có di chuyển mô-đun hoặc trang web của mình sang drupal 7 không? nếu nó là một mô-đun tùy chỉnh ở đâu là mã? Ngoài ra, bạn nên thử tắt các mô-đun cho đến khi các cảnh báo biến mất để thu hẹp hơn nữa. Một cái gì đó là đưa ra các thông số sai. –
Có, tôi đã di chuyển mô-đun của mình sang Drupal 7. Nhưng lỗi nằm trong tệp entity.inc là tệp lõi của Drupal 7. –
Về đầu ra var_dump ở trên: Không, trong cặp khóa/giá trị là * not * in định dạng đúng. Hàm array_flip có thể lật một mảng như 'mảng (0 => 'a')', nhưng không phải 'mảng (0 => mảng (0 => 'a'))' vì mảng lồng nhau sẽ phải trở thành khóa mảng . – marcvangend