abstract class Model extends BaseModel
{
/**
* @return string
*/
public static function table()
{
return with(new static)->table;
}
/**
* Insert each item as a row. Does not generate events.
*
* @param array $items
*
* @return bool
*/
public static function insertAll(array $items)
{
$now = \Carbon\Carbon::now();
$items = collect($items)->map(function (array $data) use ($now) {
return array_merge([
'created_at' => $now,
'updated_at' => $now,
], $data);
})->all();
return \DB::table(static::table())->insert($items);
}
}
$rules = [
// тут правила для всех полей кроме картинок
];
$validator = Validator::make($request->all(), $rules);
$validator->each('images', ['required', 'mimes:png,jpg,jpeg,gif,svg']);
if ($validator->fails()) {
// ...
}
namespace AppHttpRequests;
use AppHttpRequestsRequest;
class ImagesRequest extends Request {
public function authorize()
{
return true; // если гости тоже могут загружать картинки то false
}
public function rules()
{
return [
// тут правила для всех полей кроме картинок
];
foreach($this->request->file('images') as $key => $val)
{
$rules['image.'.$key] = 'required|mimes:png,jpg,jpeg,gif,svg';
}
return $rules;
}
}
public function store(App\Http\Requests\ImagesRequest $request)
{
// ...
}
namespace App\View\Composers;
use App\Comment;
use App\Blog;
use Illuminate\View\View;
class AddStatistic
{
public function compose(View $view)
{
$statistic = [
'last_comments' => Comment::getLast(),
'top_rated' => Blog::topRated(),
];
$view->with('statistic', $statistic);
}
}
namespace App\Providers;
use App\View\Composers;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
public function boot()
{
...
$this->app['view']->composer(['partials.statistic'], Composers\AddStatistic::class);
}
...
}