$messages = [
'data.ip.unique' = 'Given ip and hostname are not unique',
];
Validator::make($data, [
'data.ip' => [
'required',
Rule::unique('servers')->where(function ($query) use($ip,$hostname) {
return $query->where('ip', $ip)
->where('hostname', $hostname);
}),
],
],
$messages
);
class Handler extends ExceptionHandler
{
/**
* Report or log an exception.
*
* This is a great spot to send exceptions to Sentry, Bugsnag, etc.
*
* @param \Exception $exception
* @return void
*/
public function report(Exception $exception) {
if ($this->shouldReport($exception)) {
// Send report
}
}
$fillable
. Документация $userInfo = UserInfo::where('phone', $request->get('phone', ''))->firstOrFail();
$user = User::findOrFail($userInfo->user_id);
if(\Hash::check($request->get('password', ''), $user->password))
{
auth()->login($user, true);
}
$request->image = $file_path;
. Я примерно понимаю зачем вы так делаете, но я бы советовал отказаться от подобных финтов по отношению базовых классов (если это не описано в документации). Но в любом случае дальше по коду есть использование только значения поля categories
, но нету картинки. Скорее всего вы надеетесь на какой-то обсервер и в нём опять обращаетесь к request
, но там не будет тех изменений, что вы в него внесли, так как вы изменили только вашу локальную переменную. Input::file('image')
), они медленные. Да и не понятно зачем вы это делаете, когда имеете переменную $request
rand
для создания уникальных имен файлов. Шанс на совпадения хоть и крайне мал, но он есть. Лучше один раз создать нормальный метод именования файлов, чем делать так как сейчас$user->posts
При удалении категории сначала выбрать и получить все подкатегории, потом каждую в цикле удалять, для того, чтобы срабатывали события deleting и deleted, которые соответственно проделают тоже самое со своими продуктами, которые соответственно с изображениями.
class BlogPost extends Model
{
...
public function tags()
{
return $this->belongsToMany('App\BlogTag', 'blog_post_tags');
}
...
}
foreach($post->tags as $tag)
{
echo $tag->name;
}
<div class="modal fade in" id="{{ $name }}" tabindex="-1" role="dialog" aria-hidden="false" style="display:none;">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title">{{ $title }}</h4>
</div>
<div class="modal-body">
{{ $slot }}
</div>
<div class="modal-footer">
{{ $buttons }}
</div>
</div>
</div>
</div>
@component('admin.shared.modal')
@slot('name', 'user-modal')
@slot('title', 'New user')
<div class="form-group">
<label for="user-name">User name *</label>
<input id="user-name" class="form-control" name="name" type="text" value="" data-user-id="">
</div>
<div class="form-group">
<label for="user-email">User email *</label>
<input id="user-email" class="form-control" name="email" type="email" value="">
</div>
<div class="form-group">
<label for="user-password">User password *</label>
<input id="user-password" class="form-control" name="password" type="password" value="">
</div>
<div class="form-group">
<label>
{{ Form::checkbox('is_admin', 1, false, ['id' => 'is_admin']) }}
Is admin
</label>
</div>
@slot('buttons')
<button type="submit" class="btn btn-success" id="save">Save user</button>
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
@endslot
@endcomponent