//Your migrations here:
Schema::create('users', function (Blueprint $table) {
$table->bigIncrements('id')->unsigned();
$table->integer('qualification_id')->nullable();
$table->integer('experience_id')->nullable();
});
//then set autoincrement to 1000
//after creating the table
DB::update("ALTER TABLE users AUTO_INCREMENT = 1000;");
class Comment extends Model
{
public function likes()
{
return $this->hasMany(CommentLike::class);
}
public function isLikeByUser($user = null)
{
if (!$user) {
return false;
}
$users = $this->likes->pluck('user_id');
return in_array($user->id, $users);
}
}
$comments = Comment::with('likes')->get();
{{ $comment->isLikeByUser(Auth::user()) ? 1:0 }}
...
"autoload": {
"files": [
"app/helpers.php"
],
...
Нормально ли для каждой роли делать отдельную папку в Controllers и почти дублировать все контроллеры, чуть их модифицируя?Нет. Если даже отбросить все прочие "но", представьте, чего Вам будет стоить ввести новую роль в систему?! Это же будет полный ахтунг!
Также получается и роуты дублируются... и виды.Тем более.
Есть просто мысль, что я много кода дублирую, нормально ли это?Нет, не нормально. Честно говоря, я не понимаю, как Вы смогли изучить Laravel, при этом обойдя вниманием один из основополагающих принципов разработки DRY.
Для ролей и разрешений использую "laravel spatie permission".Честно говоря, не знаю что это, но если текущий модуль обслуживания прав/привилегий/ролей/управления доступом (и т.п.) - Вас чем-то не устраивает или заставляет(?) Вас нарушать основополагающие принципы разработки - нужно просто найти другой, более подходящий под Ваши конкретные задачи.
Много шишек, нервов, денег и времени отнял 1С-Битрикс. Решил уйти на самописанный сайт.самописанный сайт отнимет "нервов, денег и времени" в 10 раз больше. Но правда в том, что самописный интернет-магазин (как вы выразились "сайт без cms, написанный с нуля.) вам никто не сделает. Либо поставят open source, либо сделают такое, что это будет дырявое решето стоящее на протезах и костылях (и что в конечном счете с грохотом упадет).
public function toArray($request)
{
return [
'id' => $this->id,
'name' => $this->name,
'specialities' => SpecialityResource::collection($this->whenLoaded('activeSpecialities')),
];
}
public function toArray($request)
{
return [
'user' => UserResource::make($this->whenLoaded('user')),
'special_price' => $this->special_price,
];
}
Нужно разделить файлы на 2 части – doc и docxвообще неясно что хотите сделать. И главное зачем
guest
и intended
класса Illuminate\Routing\Redirector./**
* Create a new redirect response, while putting the current URL in the session.
*
* @param string $path
* @param int $status
* @param array $headers
* @param bool $secure
* @return \Illuminate\Http\RedirectResponse
*/
public function guest($path, $status = 302, $headers = [], $secure = null)
{
$this->session->put('url.intended', $this->generator->full());
return $this->to($path, $status, $headers, $secure);
}
/**
* Create a new redirect response to the previously intended location.
*
* @param string $default
* @param int $status
* @param array $headers
* @param bool $secure
* @return \Illuminate\Http\RedirectResponse
*/
public function intended($default = '/', $status = 302, $headers = [], $secure = null)
{
$path = $this->session->pull('url.intended', $default);
return $this->to($path, $status, $headers, $secure);
}
if(auth()->guest()) {
session()->put('url.intended', url()->full());
return redirect()->route('auth');
}