50 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
namespace Illuminate\Database\Eloquent;
 | 
						|
 | 
						|
use RuntimeException;
 | 
						|
 | 
						|
class JsonEncodingException extends RuntimeException
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * Create a new JSON encoding exception for the model.
 | 
						|
     *
 | 
						|
     * @param  mixed  $model
 | 
						|
     * @param  string  $message
 | 
						|
     * @return static
 | 
						|
     */
 | 
						|
    public static function forModel($model, $message)
 | 
						|
    {
 | 
						|
        return new static('Error encoding model ['.get_class($model).'] with ID ['.$model->getKey().'] to JSON: '.$message);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Create a new JSON encoding exception for the resource.
 | 
						|
     *
 | 
						|
     * @param  \Illuminate\Http\Resources\Json\JsonResource  $resource
 | 
						|
     * @param  string  $message
 | 
						|
     * @return static
 | 
						|
     */
 | 
						|
    public static function forResource($resource, $message)
 | 
						|
    {
 | 
						|
        $model = $resource->resource;
 | 
						|
 | 
						|
        return new static('Error encoding resource ['.get_class($resource).'] with model ['.get_class($model).'] with ID ['.$model->getKey().'] to JSON: '.$message);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Create a new JSON encoding exception for an attribute.
 | 
						|
     *
 | 
						|
     * @param  mixed  $model
 | 
						|
     * @param  mixed  $key
 | 
						|
     * @param  string  $message
 | 
						|
     * @return static
 | 
						|
     */
 | 
						|
    public static function forAttribute($model, $key, $message)
 | 
						|
    {
 | 
						|
        $class = get_class($model);
 | 
						|
 | 
						|
        return new static("Unable to encode attribute [{$key}] for model [{$class}] to JSON: {$message}.");
 | 
						|
    }
 | 
						|
}
 |