Documentation » Admin

Troubleshooting =============== The toString method ------------------- Sometimes the bundle needs to display your model objects, in order to do it, objects are converted to string by using the `__toString`_ magic method. Take care to never return anything else than a string in this method. For example, if your method looks like that:: // src/Entity/Post.php class Post { public function __toString() { return $this->getTitle(); } } You cannot be sure your object will *always* have a title when the bundle will want to convert it to a string. So in order to avoid any fatal error, you must return an empty string (or anything you prefer) for when the title is missing, like this:: // src/Entity/Post.php class Post { public function __toString() { return $this->getTitle() ?: ''; } } .. _`__toString`: Large filters and long URLs problem ----------------------------------- If you will try to add hundreds of filters to a single admin class, you will get a problem - very long generated filter form URL. In most cases you will get server response like *Error 400 Bad Request* OR *Error 414 Request-URI Too Long*. According to `a StackOverflow discussion `_ "safe" URL length is around 2000 characters. You can fix this issue by adding a small JQuery piece of code to your edit template: .. code-block:: javascript $(function() { // Add class 'had-value-on-load' to inputs/selects with values. $(".sonata-filter-form input").add(".sonata-filter-form select").each(function(){ if($(this).val()) { $(this).addClass('had-value-on-load'); } }); // REMOVE ALL EMPTY INPUT FROM FILTER FORM (except inputs, which has class 'had-value-on-load') $(".sonata-filter-form").submit(function() { $(".sonata-filter-form input").add(".sonata-filter-form select").each(function(){ if(!$(this).val() && !$(this).hasClass('had-value-on-load')) { $(this).remove() }; }); }); });

Found a typo? Something is wrong in this documentation? Just fork and edit it!