Toggle navigation
Toggle navigation
This project
Loading...
Sign in
OnePoem
/
OnePoem-Server
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
李帅
2023-03-21 00:59:51 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
8982a1b7464150cc94a9582145bede5e0c77da4a
8982a1b7
1 parent
434aba01
1.优化一言添加
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
104 additions
and
26 deletions
app/Admin/Controllers/OnePoemController.php
app/Admin/Controllers/PoetryController.php
app/Admin/Renderable/AuthorTable.php
app/Admin/Renderable/VerseTable.php
app/Models/OnePoem2.php
database/migrations/2023_03_20_214555_create_verse_one_poem2_table.php
app/Admin/Controllers/OnePoemController.php
View file @
8982a1b
...
...
@@ -6,6 +6,7 @@ use App\Admin\Renderable\VerseTable;
use
App\Admin\Repositories\OnePoem
;
use
App\Admin\Repositories\Verse
;
use
App\Models\Author
;
use
App\Models\OnePoem2
;
use
App\Models\Poetry
;
use
Dcat\Admin\Form
;
use
Dcat\Admin\Grid
;
...
...
@@ -25,16 +26,34 @@ class OnePoemController extends AdminController
*/
protected
function
grid
()
{
return
Grid
::
make
(
new
OnePoem
(),
function
(
Grid
$grid
)
{
// return Grid::make(new OnePoem(), function (Grid $grid) {
// $grid->column('id')->sortable();
// $grid->column('title');
// $grid->column('content');
// $grid->column('annotate');
// $grid->column('spelling');
// $grid->column('en');
// $grid->column('created_at');
// $grid->column('updated_at')->sortable();
//
// $grid->filter(function (Grid\Filter $filter) {
// $filter->equal('id');
// });
// });
return
Grid
::
make
(
new
OnePoem2
(),
function
(
Grid
$grid
)
{
$grid
->
model
()
->
with
(
'verses'
);
$grid
->
column
(
'id'
)
->
sortable
();
$grid
->
column
(
'title'
);
$grid
->
column
(
'content'
);
$grid
->
column
(
'annotate'
);
$grid
->
column
(
'spelling'
);
$grid
->
column
(
'en'
);
$grid
->
column
(
'author'
);
// $grid->column('content');
$grid
->
verses
(
'正文'
)
->
pluck
(
'stanza'
)
->
label
();
// $grid->column('annotate');
// $grid->column('spelling');
// $grid->column('en');
$grid
->
column
(
'created_at'
);
$grid
->
column
(
'updated_at'
)
->
sortable
();
$grid
->
filter
(
function
(
Grid\Filter
$filter
)
{
$filter
->
equal
(
'id'
);
});
...
...
@@ -87,21 +106,13 @@ class OnePoemController extends AdminController
$form
->
text
(
'title'
);
$form
->
text
(
'author'
);
$form
->
hasMany
(
'components'
,
'诗句组'
,
function
(
Form\NestedForm
$form
)
{
$form
->
selectTable
(
'font_file'
,
'诗句'
)
$form
->
hasMany
(
'verses'
,
'诗句组'
,
function
(
Form\NestedForm
$form
)
{
$form
->
selectTable
(
'verse_id'
,
'诗句'
)
->
title
(
'字体选择'
)
->
from
(
VerseTable
::
make
())
->
model
(
\App\Models\Verse
::
class
,
'id'
,
'stanza'
);
});
// $form->textarea('content');
// $form->text('annotate');
// $form->text('spelling');
// $form->text('en');
$form
->
display
(
'created_at'
);
$form
->
display
(
'updated_at'
);
});
...
...
@@ -109,8 +120,21 @@ class OnePoemController extends AdminController
public
function
store
()
{
return
request
()
->
all
();
// return $this->form()->store();
// 写 一言表
$post
=
request
()
->
all
();
$poem2
=
OnePoem2
::
query
()
->
create
([
'title'
=>
$post
[
'title'
],
'author'
=>
$post
[
'author'
],
]);
// 写关联表
$verse_ids
=
[];
foreach
(
$post
[
'verses'
]
as
$verse
){
$verse_ids
[]
=
$verse
[
'verse_id'
];
}
$poem2
->
verses
()
->
sync
(
$verse_ids
);
return
$this
->
form
()
->
response
()
->
success
(
'添加成功'
);
}
protected
function
PoetryGrid
()
...
...
app/Admin/Controllers/PoetryController.php
View file @
8982a1b
...
...
@@ -2,6 +2,7 @@
namespace
App\Admin\Controllers
;
use
App\Admin\Renderable\AuthorTable
;
use
App\Admin\Repositories\Poetry
;
use
Dcat\Admin\Form
;
use
Dcat\Admin\Grid
;
...
...
@@ -19,11 +20,14 @@ class PoetryController extends AdminController
protected
function
grid
()
{
return
Grid
::
make
(
new
Poetry
(),
function
(
Grid
$grid
)
{
$grid
->
model
()
->
with
([
'author'
]);
$grid
->
column
(
'id'
)
->
sortable
();
$grid
->
column
(
'author.name'
,
'作者'
);
$grid
->
column
(
'name'
);
$grid
->
column
(
'subname'
);
$grid
->
column
(
'alias'
);
$grid
->
column
(
'en'
);
$grid
->
column
(
'state'
,
'状态'
)
->
switch
();
$grid
->
column
(
'created_at'
);
$grid
->
column
(
'updated_at'
)
->
sortable
();
...
...
@@ -62,7 +66,12 @@ class PoetryController extends AdminController
protected
function
form
()
{
return
Form
::
make
(
new
Poetry
(),
function
(
Form
$form
)
{
$form
->
display
(
'id'
);
$form
->
selectTable
(
'author_id'
,
'作者'
)
->
title
(
'字体选择'
)
->
from
(
AuthorTable
::
make
())
->
model
(
\App\Models\Author
::
class
,
'id'
,
'name'
);
$form
->
text
(
'name'
);
$form
->
text
(
'subname'
);
$form
->
text
(
'alias'
);
...
...
app/Admin/Renderable/AuthorTable.php
0 → 100644
View file @
8982a1b
<?php
/**
* Created by PhpStorm.
* User: lishuai
* Date: 2022/1/10
* Time: 5:57 PM
*/
namespace
App\Admin\Renderable
;
use
App\Admin\Repositories\OnePoem
;
use
App\Models\Author
;
use
Dcat\Admin\Grid
;
use
Dcat\Admin\Grid\LazyRenderable
;
class
AuthorTable
extends
LazyRenderable
{
public
function
grid
()
:
Grid
{
return
Grid
::
make
(
new
Author
(),
function
(
Grid
$grid
)
{
$grid
->
column
(
'id'
,
'ID'
)
->
sortable
();
$grid
->
column
(
'name'
);
$grid
->
column
(
'dynasty'
);
$grid
->
column
(
'introduce'
);
$grid
->
column
(
'state'
)
->
switch
();
$grid
->
quickSearch
([
'name'
,
'dynasty'
,
'introduce'
]);
$grid
->
paginate
(
10
);
$grid
->
disableActions
();
$grid
->
filter
(
function
(
Grid\Filter
$filter
)
{
$filter
->
like
(
'name'
)
->
width
(
3
);
$filter
->
like
(
'dynasty'
)
->
width
(
3
);
$filter
->
like
(
'introduce'
)
->
width
(
3
);
});
});
}
}
\ No newline at end of file
app/Admin/Renderable/VerseTable.php
View file @
8982a1b
...
...
@@ -23,13 +23,13 @@ class VerseTable extends LazyRenderable
$grid
->
model
()
->
with
([
'poetry'
]);
$grid
->
column
(
'id'
)
->
sortable
();
$grid
->
column
(
'author_id'
)
->
display
(
function
(){
$id
=
$this
->
poetry_id
;
$poetry
=
Poetry
::
query
()
->
find
(
$id
);
$author_id
=
$poetry
->
author_id
;
$author
=
Author
::
query
()
->
find
(
$author_id
);
return
$author
->
name
;
})
->
copyable
();
//
$grid->column('author_id')->display(function (){
//
$id = $this->poetry_id;
//
$poetry = Poetry::query()->find($id);
//
$author_id = $poetry->author_id;
//
$author = Author::query()->find($author_id);
//
return $author->name;
//
})->copyable();
$grid
->
column
(
'poetry.name'
)
->
copyable
();
$grid
->
column
(
'stanza'
)
->
copyable
();
...
...
app/Models/OnePoem2.php
View file @
8982a1b
...
...
@@ -11,9 +11,15 @@ class OnePoem2 extends Model
use
HasDateTimeFormatter
;
protected
$table
=
'one_poem2'
;
protected
$fillable
=
[
'title'
,
'author'
];
public
function
admin_make_video
()
{
return
$this
->
belongsTo
(
AdminMakeVideo
::
class
,
'poem_id'
);
}
public
function
verses
()
{
return
$this
->
belongsToMany
(
Verse
::
class
,
'verse_poem2'
,
'poem_id'
,
'verse_id'
);
}
}
...
...
database/migrations/2023_03_20_214555_create_verse_one_poem2_table.php
View file @
8982a1b
...
...
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use
Illuminate\Database\Schema\Blueprint
;
use
Illuminate\Support\Facades\Schema
;
class
CreateOnePoem2Table
extends
Migration
class
Create
Verse
OnePoem2Table
extends
Migration
{
/**
* Run the migrations.
...
...
Please
register
or
login
to post a comment