In mẫu bình luận bằng PHP


7

Tôi đang cố gắng in một mẫu nhận xét với mã sau đây.

<?php 
    print drupal_get_form('comment_form', array('nid' => $row->nid), t('Post new comment')); 
?>

Tất cả tôi nhận được là lỗi sau lặp lại 40 lần:

Cảnh báo: Cố gắng gán thuộc tính của đối tượng không trong comment_form () (dòng 1845 của /home/admin/public_html/website.com/modules/comment/comment.module) .`

Biểu mẫu nhận xét được gọi từ bên trong trường Lượt xem PHP . Cách thích hợp để thêm nhận xét cho một nút trong Drupal 7 là gì?

Thực tế có rất nhiều lỗi, hầu hết đều lặp lại ít nhất một lần:

EntityMalformedException: Thiếu thuộc tính gói trên thực thể của nhận xét loại. trong entity_extract_ids () (dòng 7501 của /home/admin/public_html/website.com/includes/common.inc). Lưu ý: Cố gắng lấy thuộc tính của đối tượng không trong comment_form () (dòng 1854 của /home/admin/public_html/website.com/modules/comment/comment.module).

Câu trả lời:


12

comment_form() đang mong đợi tham số là một đối tượng chứ không phải là một mảng vì vậy bạn nên làm một cái gì đó như thế này:

$comment = new stdClass;
$comment->nid = $row->nid;
$form = drupal_get_form('comment_form', $comment);

Lưu ý việc thiếu tham số thứ 3 được chuyển đến drupal_get_form(), comment_form()chỉ chấp nhận nhận xét dưới dạng tham số, nếu bạn muốn thêm tiêu đề, bạn sẽ phải in riêng.

Cuối cùng drupal_get_form()trả về một mảng kết xuất chứ không phải là một chuỗi, do đó bạn cần truyền nó qua render()hàm:

print render($form);

Các lỗi thêm mà bạn nhận được chỉ là tác dụng phụ của việc truyền một mảng chứ không phải là một đối tượng cho comment_form()hàm.


Cảm ơn người đàn ông ... một số tài liệu này khá khó hiểu
emc
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.