mirror of
https://github.com/10h30/Test-Laravel-Eloquent-Basics.git
synced 2026-06-05 15:07:45 +09:00
Complete all stats
This commit is contained in:
@@ -12,7 +12,7 @@ class ProjectController extends Controller
|
||||
{
|
||||
// TASK: Currently this statement fails. Fix the underlying issue.
|
||||
Project::create([
|
||||
'name' => $request->name
|
||||
'name' => $request->name,
|
||||
]);
|
||||
|
||||
return redirect('/')->with('success', 'Project created');
|
||||
@@ -26,6 +26,9 @@ class ProjectController extends Controller
|
||||
// where name = $request->old_name
|
||||
|
||||
// Insert Eloquent statement below
|
||||
Project::where('name', $request->old_name)
|
||||
->update(['name' => $request->new_name]);
|
||||
|
||||
|
||||
return redirect('/')->with('success', 'Projects updated');
|
||||
}
|
||||
@@ -35,7 +38,7 @@ class ProjectController extends Controller
|
||||
Project::destroy($projectId);
|
||||
|
||||
// TASK: change this Eloquent statement to include the soft-deletes records
|
||||
$projects = Project::all();
|
||||
$projects = Project::withTrashed()->get();
|
||||
|
||||
return view('projects.index', compact('projects'));
|
||||
}
|
||||
|
||||
@@ -45,7 +45,13 @@ class UserController extends Controller
|
||||
{
|
||||
// TASK: find a user by $name and update it with $email
|
||||
// if not found, create a user with $name, $email and random password
|
||||
$user = NULL; // updated or created user
|
||||
$user = User::updateOrCreate(
|
||||
['name' => $name],
|
||||
[
|
||||
'email' => $email,
|
||||
'password' => Hash::make(Str::random(12)),
|
||||
]
|
||||
);
|
||||
|
||||
return view('users.show', compact('user'));
|
||||
}
|
||||
@@ -57,7 +63,7 @@ class UserController extends Controller
|
||||
// $request->users is an array of IDs, ex. [1, 2, 3]
|
||||
|
||||
// Insert Eloquent statement here
|
||||
|
||||
$users = User::whereIn('id', $request->users)->delete();
|
||||
return redirect('/')->with('success', 'Users deleted');
|
||||
}
|
||||
|
||||
|
||||
@@ -9,4 +9,5 @@ use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
class Project extends Model
|
||||
{
|
||||
use HasFactory, SoftDeletes;
|
||||
protected $fillable = ['name'];
|
||||
}
|
||||
|
||||
@@ -41,4 +41,9 @@ class User extends Authenticatable
|
||||
protected $casts = [
|
||||
'email_verified_at' => 'datetime',
|
||||
];
|
||||
|
||||
public function scopeActive($query)
|
||||
{
|
||||
return $query->whereNotNull('email_verified_at');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
namespace App\Observers;
|
||||
|
||||
use App\Models\Project;
|
||||
use App\Models\Stat;
|
||||
|
||||
class ProjectObserver
|
||||
{
|
||||
/**
|
||||
* Handle the Project "created" event.
|
||||
*/
|
||||
public function creating(Project $project): void
|
||||
{
|
||||
|
||||
Stat::first()->increment('projects_count');
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle the Project "updated" event.
|
||||
*/
|
||||
public function updated(Project $project): void
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle the Project "deleted" event.
|
||||
*/
|
||||
public function deleted(Project $project): void
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle the Project "restored" event.
|
||||
*/
|
||||
public function restored(Project $project): void
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle the Project "force deleted" event.
|
||||
*/
|
||||
public function forceDeleted(Project $project): void
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
namespace App\Providers;
|
||||
|
||||
use App\Models\Project;
|
||||
use App\Observers\ProjectObserver;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
|
||||
class AppServiceProvider extends ServiceProvider
|
||||
@@ -24,5 +26,6 @@ class AppServiceProvider extends ServiceProvider
|
||||
public function boot()
|
||||
{
|
||||
//
|
||||
Project::observe(ProjectObserver::class);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user