post crud fix

This commit is contained in:
Kavalar 2024-07-26 12:42:44 +03:00
parent f5f546ba95
commit 2d8f945cad
7 changed files with 25 additions and 8 deletions

View File

@ -30,7 +30,7 @@ class PostController extends Controller
$postForm = new CreatePostForm(); $postForm = new CreatePostForm();
$postService = new PostService(); $postService = new PostService();
$postForm->load($_REQUEST); $postForm->load($_REQUEST);
if((new UserService)->check($_REQUEST['user_id'])) { if(UserService::check($_REQUEST['user_id'])) {
if ($postForm->validate()) { if ($postForm->validate()) {
$post = $postService->create($postForm); $post = $postService->create($postForm);
if ($post) { if ($post) {

View File

@ -9,7 +9,7 @@ class CreatePostForm extends FormModel
public function rules(): array public function rules(): array
{ {
return [ return [
'content' => 'required|min-str-len:1|max-str-len:2048', 'content' => 'required|min-str-len:1',
'user_id' => 'required|min-str-len:1', 'user_id' => 'required|min-str-len:1',
]; ];
} }

View File

@ -34,8 +34,9 @@ class UserService
return false; return false;
} }
public function check(int $user_id): bool public static function check(int $user_id): bool
{ {
if (User::where(['id' => $user_id])->first()) if (User::where(['id' => $user_id])->first())
{ {
return true; return true;

View File

@ -0,0 +1,16 @@
<?php
namespace app\tables\columns;
use Itguild\Tables\ActionColumn\ActionColumn;
class PostEditActionColumn extends ActionColumn
{
protected string $prefix = "/update/";
public function fetch(): string
{
$link = $this->baseUrl . $this->prefix . $this->id;
return " <a href='$link' class='btn btn-success'>Редактировать</a> ";
}
}

View File

@ -11,7 +11,7 @@ class UserEditActionColumn extends ActionColumn
public function fetch(): string public function fetch(): string
{ {
// $link = $this->baseUrl . $this->prefix . $this->id . $this->prefix . "update"; // $link = $this->baseUrl . $this->prefix . $this->id . $this->prefix . "update";
$link = $this->baseUrl . $this->prefix . "update" . $this->prefix . $this->id; $link = $this->baseUrl . $this->prefix . $this->id;
return " <a href='$link' class='btn btn-success'>Редактировать</a> "; return " <a href='$link' class='btn btn-success'>Редактировать</a> ";
} }
} }

View File

@ -10,9 +10,8 @@ class JSONCreator
public function __construct(array $meta, array $data) public function __construct(array $meta, array $data)
{ {
$params = empty($meta['params']) ? ["class" => "table table-bordered", "border" => "1"] : $meta['params']; $params = empty($meta['params']) ? ["class" => "table table-bordered", "border" => "1"] : $meta['params'];
if ($meta && $data) { if ($meta) {
$this->informationArray = [ $this->informationArray = [
"meta" => [ "meta" => [
"columns" => $meta['columns'] ?? [], "columns" => $meta['columns'] ?? [],
@ -24,7 +23,7 @@ class JSONCreator
"params" => $params "params" => $params
], ],
"data" => $data "data" => $data ?? []
]; ];
} }
} }

View File

@ -18,13 +18,14 @@ $dataProvider = new ListJsonTableEloquentCollection($contents, [
'params' => ["class" => "table table-bordered", "border" => "2"], 'params' => ["class" => "table table-bordered", "border" => "2"],
'baseUrl' => "/admin/post", 'baseUrl' => "/admin/post",
]); ]);
$table = new ListJsonTable($dataProvider->getJson()); $table = new ListJsonTable($dataProvider->getJson());
$table->beforePrint(function (){ $table->beforePrint(function (){
return PrimaryBtn::create("Создать", "/admin/post/create")->fetch(); return PrimaryBtn::create("Создать", "/admin/post/create")->fetch();
//return (new PrimaryBtn("Создать", "/admin/user/create"))->fetch(); //return (new PrimaryBtn("Создать", "/admin/user/create"))->fetch();
}); });
$table->addAction(UserViewActionColumn::class); $table->addAction(UserViewActionColumn::class);
$table->addAction(UserEditActionColumn::class); $table->addAction(\app\tables\columns\PostEditActionColumn::class);
$table->addAction(UserDeleteActionColumn::class); $table->addAction(UserDeleteActionColumn::class);
$table->create(); $table->create();
$table->render(); $table->render();