Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Y
yii2-giiant
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
dmstr
yii2-giiant
Commits
cc6ea46c
Commit
cc6ea46c
authored
Oct 14, 2016
by
Tobias Munk
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added relation buttons
parent
194c15a1
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
12 additions
and
1 deletion
+12
-1
RelationProvider.php
src/generators/crud/providers/core/RelationProvider.php
+12
-1
No files found.
src/generators/crud/providers/core/RelationProvider.php
View file @
cc6ea46c
...
...
@@ -11,6 +11,7 @@ use schmunk42\giiant\generators\model\Generator as ModelGenerator;
use
yii\db\ActiveRecord
;
use
yii\db\ColumnSchema
;
use
yii\helpers\Inflector
;
use
yii\helpers\StringHelper
;
class
RelationProvider
extends
\schmunk42\giiant\base\Provider
{
...
...
@@ -118,6 +119,11 @@ EOS;
}
$title
=
$this
->
generator
->
getModelNameAttribute
(
$relation
->
modelClass
);
$route
=
$this
->
generator
->
createRelationRoute
(
$relation
,
'view'
);
// prepare URLs
$routeAttach
=
'create'
;
$routeIndex
=
$this
->
generator
->
createRelationRoute
(
$relation
,
'index'
);
$modelClass
=
$this
->
generator
->
modelClass
;
$relationGetter
=
'get'
.
(
new
ModelGenerator
())
->
generateRelationName
(
[
$relation
],
...
...
@@ -126,11 +132,13 @@ EOS;
$relation
->
multiple
)
.
'()'
;
$relationModel
=
new
$relation
->
modelClass
();
$relationModelName
=
StringHelper
::
basename
(
$modelClass
);
$pks
=
$relationModel
->
primaryKey
();
$paramArrayItems
=
''
;
foreach
(
$pks
as
$attr
)
{
$paramArrayItems
.=
"'
{
$attr
}
' =>
\$
model->
{
$relationGetter
}
->one()->
{
$attr
}
,"
;
}
$attachArrayItems
=
"'
{
$relationModelName
}
'=>['
{
$column
->
name
}
' =>
\$
model->
{
$column
->
name
}
]"
;
$method
=
__METHOD__
;
$code
=
<<<EOS
...
...
@@ -139,7 +147,10 @@ EOS;
'format' => 'html',
'attribute' => '$column->name',
'value' => (\$model->{$relationGetter}->one() ?
Html::a('<i class="glyphicon glyphicon-circle-arrow-right"></i>'.\$model->{$relationGetter}->one()->{$title}, ['{$route}', {$paramArrayItems}]) :
Html::a('<i class="glyphicon glyphicon-list"></i>', ['{$routeIndex}']).' '.
Html::a('<i class="glyphicon glyphicon-circle-arrow-right"></i> '.\$model->{$relationGetter}->one()->{$title}, ['{$route}', {$paramArrayItems}]).' '.
Html::a('<i class="glyphicon glyphicon-paperclip"></i>', ['{$routeAttach}', {$attachArrayItems}])
:
'<span class="label label-warning">?</span>'),
]
EOS;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment