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.
|
// TASK: Currently this statement fails. Fix the underlying issue.
|
||||||
Project::create([
|
Project::create([
|
||||||
'name' => $request->name
|
'name' => $request->name,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
return redirect('/')->with('success', 'Project created');
|
return redirect('/')->with('success', 'Project created');
|
||||||
@@ -26,6 +26,9 @@ class ProjectController extends Controller
|
|||||||
// where name = $request->old_name
|
// where name = $request->old_name
|
||||||
|
|
||||||
// Insert Eloquent statement below
|
// Insert Eloquent statement below
|
||||||
|
Project::where('name', $request->old_name)
|
||||||
|
->update(['name' => $request->new_name]);
|
||||||
|
|
||||||
|
|
||||||
return redirect('/')->with('success', 'Projects updated');
|
return redirect('/')->with('success', 'Projects updated');
|
||||||
}
|
}
|
||||||
@@ -35,7 +38,7 @@ class ProjectController extends Controller
|
|||||||
Project::destroy($projectId);
|
Project::destroy($projectId);
|
||||||
|
|
||||||
// TASK: change this Eloquent statement to include the soft-deletes records
|
// TASK: change this Eloquent statement to include the soft-deletes records
|
||||||
$projects = Project::all();
|
$projects = Project::withTrashed()->get();
|
||||||
|
|
||||||
return view('projects.index', compact('projects'));
|
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
|
// TASK: find a user by $name and update it with $email
|
||||||
// if not found, create a user with $name, $email and random password
|
// 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'));
|
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]
|
// $request->users is an array of IDs, ex. [1, 2, 3]
|
||||||
|
|
||||||
// Insert Eloquent statement here
|
// Insert Eloquent statement here
|
||||||
|
$users = User::whereIn('id', $request->users)->delete();
|
||||||
return redirect('/')->with('success', 'Users deleted');
|
return redirect('/')->with('success', 'Users deleted');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,4 +9,5 @@ use Illuminate\Database\Eloquent\SoftDeletes;
|
|||||||
class Project extends Model
|
class Project extends Model
|
||||||
{
|
{
|
||||||
use HasFactory, SoftDeletes;
|
use HasFactory, SoftDeletes;
|
||||||
|
protected $fillable = ['name'];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,4 +41,9 @@ class User extends Authenticatable
|
|||||||
protected $casts = [
|
protected $casts = [
|
||||||
'email_verified_at' => 'datetime',
|
'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;
|
namespace App\Providers;
|
||||||
|
|
||||||
|
use App\Models\Project;
|
||||||
|
use App\Observers\ProjectObserver;
|
||||||
use Illuminate\Support\ServiceProvider;
|
use Illuminate\Support\ServiceProvider;
|
||||||
|
|
||||||
class AppServiceProvider extends ServiceProvider
|
class AppServiceProvider extends ServiceProvider
|
||||||
@@ -24,5 +26,6 @@ class AppServiceProvider extends ServiceProvider
|
|||||||
public function boot()
|
public function boot()
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
|
Project::observe(ProjectObserver::class);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user