$result = '';
foreach ($comments as $comment){
$result .= view('comment')->with('comment', $comment)->render();
}
если зайти на сайт, то я так понимаю создается новый файл кеша с правами которые не позволяют уже удалить этот файл, почему такое происходит и как мне с этим бороться?Это значит, что у вас веб-сервер, скорее всего, работает от рута.
ls -l bootstrap/cache
- увидите, из-под какого пользователя работает веб-сервер. <?php
$CURRENT_USER_ID = \Auth::user()->id;
$posts = Post::with([
'bookmark_users' => function($q) use($CURRENT_USER_ID) {
$q->where('id', $CURRENT_USER_ID);
}
])
->get();
foreach ($posts as $item) {
if($item->bookmark_users->count() > 0) {
// Удалить
}else{
// Добавить
}
}
<?php
$str = '{"name": "my "name"", "value": "123456789"}';
function fixJSON($str) {
$len = strlen($str);
$result = '';
$space = '';
$mode = 0;
for($i=0;$i<$len;$i++){
$c = $str[$i];
switch ($mode) {
case 0: //вне строки
if ($c == '"') $mode = 1;
$result .= $c;
break;
case 1: //внутри строки
if ($c == '"') {
$mode = 3;
$space = $c;
break;
}
if ($c == '\\') $mode = 2;
$result .= $c;
break;
case 2: //сразу после слеша (игнорим один любой символ)
$mode = 1;
$result .= $c;
break;
case 3: //была кавычка внутри строки
if ($c == ' ' || $c == '\n' || $c == '\t' || $c == '\r')
$space .= $c;
elseif ($c == ',' || $c == '}' || $c == ']' || $c == ':') {
//вероятно был конец строки (шанс 99%)
$mode = 0;
$result .= $space.$c;
} else {
//мы остались внутри строки на 100%. Экранируем
$mode = 1;
$result .= '\\'.$space;
$i--; //уходим назад, т.к. вдруг это снова кавычка
}
break;
}
}
return $result;
}
echo(fixJSON($str)); //{"name": "my \"name\"", "value": "123456789"}
?>
<?php
$str = '{"say": ""my name", hi", "value": "123456789"}';
function fixJSON($str) {
$len = strlen($str);
$result = '';
$space = '';
$mode = 0;
for($i=0;$i<$len;$i++){
$c = $str[$i];
switch ($mode) {
case 0: //вне строки
if ($c == '"') $mode = 1;
$result .= $c;
break;
case 1: //внутри строки
if ($c == '"') {
$mode = 3;
$space = $c;
break;
}
if ($c == '\\') $mode = 2;
$result .= $c;
break;
case 2: //сразу после слеша (игнорим один любой символ)
$mode = 1;
$result .= $c;
break;
case 3: //была кавычка внутри строки
if ($c == ' ' || $c == '\n' || $c == '\t' || $c == '\r')
$space .= $c;
elseif ($c == '}' || $c == ']') {
//вероятно был конец строки (шанс 99%)
$mode = 4;
$space .= $c;
}
elseif ($c == ',' || $c == ':') {
//вероятно был конец строки (шанс 90%)
$mode = 5;
$space .= $c;
} else {
//мы остались внутри строки на 100%. Экранируем
$mode = 1;
$result .= '\\'.$space;
$i--; //уходим назад, т.к. вдруг это снова кавычка
}
break;
case 4: //после спец символа
if ($c == ' ' || $c == '\n' || $c == '\t' || $c == '\r')
$space .= $c;
elseif ($c == ',') {
//был конец строки с шансом 99.99%
$mode = 0;
$result .= $space.$c;
} else {
//внтури строки на 100%
$mode = 1;
$result .= '\\'.$space;
$i--;
}
break;
case 5: //после запятой
if ($c == ' ' || $c == '\n' || $c == '\t' || $c == '\r')
$space .= $c;
elseif (preg_match('/[0-9"-]+/', $c)) {
//был конец строки с шансом 99.9%
$mode = 0;
$result .= $space;
$i--;
} else {
//внтури строки на 100%
$mode = 1;
$result .= '\\'.$space;
$i--;
}
break;
}
}
if ($mode>2) $result .= $space;
return $result;
}
echo(fixJSON($str)); //{"say": "\"my name\", hi", "value": "123456789"}
?>
$categories = Category::whereName($name)->get();
$articles = Article:with('types')->whereIn('id', $categories->pluck('id'))->paginate(10);
class Article
{
public function voters()
{
return $this->belongsToMany('App\Models\User')->withPivot('score');
}
}
$user
->with(['favorite', 'favorite' => function($query) use ($user) {
$query
->with('voters')
->where('user_id', $user->id);
}])
Class FavoritesList()
{
public function articleRatingLog()
{
// Нужно указать несколько ключей для корректной связи
// На обратной стороне также
return $this->hasOne('App\ArticleRatingLog', ['user_id', 'article_id'], ['user_id', 'article_id']);
}
}
$user->favoriteList[$index]->articleRatingLog->score;
'middleware' => 'throttle:1,5'
1 - сколько раз, 5 - сколько минут таймаут Comment (article_id, id, text, user_id)
Article (id, text, user_id)
User (id, name)
public function comments(){
return $this->hasMany(Comment::class);
}
public function author(){
return $this->belongsTo(User::class);
}
public function commetators(){
return $this->hasManyThrough(User::class, Comment::class);
public function article(){
return $this->belongsTo(Article::class);
}
public function user(){
return $this->belongsTo(User::class);
}
$users = Article::find(1)->commentators;