for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace hamburgscleanest\DataTables\Models\ColumnFormatters;
use hamburgscleanest\DataTables\Interfaces\ColumnFormatter;
use Illuminate\Database\Eloquent\Model;
/**
* Class ImageColumn
* @package hamburgscleanest\DataTables\Models\ColumnFormatters
*/
class ImageColumn implements ColumnFormatter {
/** @var string */
private $_classes;
private $_fallback;
* ImageColumn constructor.
* @param null|string $fallback
* @param null|string $classes
public function __construct(? string $fallback = null, ? string $classes = null)
{
$this->_fallback = $fallback;
$this->_classes = $classes;
}
* @param Model $rowModel
* @param string $column
* @return string
public function format(Model $rowModel, string $column) : string
if (!\file_exists($column))
return $this->_fallback ?? '';
return $this->_renderImage($column);
* @param string $path
private function _renderImage(string $path) : string
return '<img src="' . $path . (!empty($this->_classes) ? ('" class="' . $this->_classes) : '') . '"/>';
* Add styling to the image.
*
* @param string $classes
* @return ImageColumn
public function classes(string $classes) : ImageColumn
return $this;
* Set a fallback value which is used when the image is not found.
* @param string $fallback
public function fallback(string $fallback) : ImageColumn